From 432baf81442240d67553a76ed86eac98e623a2a3 Mon Sep 17 00:00:00 2001 From: John Vandenberg Date: Sun, 11 Nov 2018 21:00:08 +0700 Subject: [PATCH] Add linters --- data/Linter/infer.yaml | 12 ++++++++++ data/Linter/pyflakes.yaml | 10 ++++++++ data/Package/infer-0.7.0-linux.yaml | 6 +++++ data/Package/pyflakes.yaml | 3 +++ data/PackageManager/_all.yml | 3 +++ models/Aspect.yaml | 1 + models/Linter.yaml | 8 +++++++ models/Package.yaml | 7 ++++++ models/PackageManager.yaml | 1 + models/Platform.yaml | 1 + templates/Linter.html.jinja2 | 37 +++++++++++++++++++++++++++++ templates/Package.html.jinja2 | 31 ++++++++++++++++++++++++ templates/home.html.jinja2 | 14 +++++++++++ views/home.yaml | 1 + views/languages.yaml | 2 +- views/linters.yaml | 5 ++++ views/package.yaml | 5 ++++ 17 files changed, 146 insertions(+), 1 deletion(-) create mode 100644 data/Linter/infer.yaml create mode 100644 data/Linter/pyflakes.yaml create mode 100644 data/Package/infer-0.7.0-linux.yaml create mode 100644 data/Package/pyflakes.yaml create mode 100644 data/PackageManager/_all.yml create mode 100644 models/Aspect.yaml create mode 100644 models/Linter.yaml create mode 100644 models/Package.yaml create mode 100644 models/PackageManager.yaml create mode 100644 models/Platform.yaml create mode 100644 templates/Linter.html.jinja2 create mode 100644 templates/Package.html.jinja2 create mode 100644 views/linters.yaml create mode 100644 views/package.yaml diff --git a/data/Linter/infer.yaml b/data/Linter/infer.yaml new file mode 100644 index 0000000..afc4dc4 --- /dev/null +++ b/data/Linter/infer.yaml @@ -0,0 +1,12 @@ +name: Infer +executable: infer +website: https://fbinfer.com/ +packages: + - infer-0.7.0-linux +languages: + - C + - CPlusPlus + - Java + - Objective-C +aspects: + - Security diff --git a/data/Linter/pyflakes.yaml b/data/Linter/pyflakes.yaml new file mode 100644 index 0000000..a761b42 --- /dev/null +++ b/data/Linter/pyflakes.yaml @@ -0,0 +1,10 @@ +name: pyflakes +executable: pyflakes +packages: + - pyflakes +languages: + - Python +aspects: + - Syntax + - Unused Code + - Undefined Element diff --git a/data/Package/infer-0.7.0-linux.yaml b/data/Package/infer-0.7.0-linux.yaml new file mode 100644 index 0000000..0695226 --- /dev/null +++ b/data/Package/infer-0.7.0-linux.yaml @@ -0,0 +1,6 @@ +name: infer +manager: opam +source: https://github.com/facebook/infer/releases/download/ + v0.7.0/infer-linux64-v0.7.0.tar.xz +version: 0.7.0 +platform: linux diff --git a/data/Package/pyflakes.yaml b/data/Package/pyflakes.yaml new file mode 100644 index 0000000..e259be2 --- /dev/null +++ b/data/Package/pyflakes.yaml @@ -0,0 +1,3 @@ +name: pyflakes +manager: pip +version: 2.0.0 diff --git a/data/PackageManager/_all.yml b/data/PackageManager/_all.yml new file mode 100644 index 0000000..af81a27 --- /dev/null +++ b/data/PackageManager/_all.yml @@ -0,0 +1,3 @@ +- pk: npm +- pk: opam +- pk: pip diff --git a/models/Aspect.yaml b/models/Aspect.yaml new file mode 100644 index 0000000..8845d6f --- /dev/null +++ b/models/Aspect.yaml @@ -0,0 +1 @@ +# pk: String diff --git a/models/Linter.yaml b/models/Linter.yaml new file mode 100644 index 0000000..5c4db73 --- /dev/null +++ b/models/Linter.yaml @@ -0,0 +1,8 @@ +name: String +executable: String +repology_id: String # optional +wikidata: String # optional +website: String +languages: Language[] +aspects: Aspect[] # i.e. CAN_DETECT & CAN_FIX +packages: Package[] # only needed where Repology does not provide diff --git a/models/Package.yaml b/models/Package.yaml new file mode 100644 index 0000000..4bff567 --- /dev/null +++ b/models/Package.yaml @@ -0,0 +1,7 @@ +name: String +manager: PackageManager +version: String +repology_id: String # optional +wikidata: String # optional +source: String # optional +platform: Platform # optional diff --git a/models/PackageManager.yaml b/models/PackageManager.yaml new file mode 100644 index 0000000..8845d6f --- /dev/null +++ b/models/PackageManager.yaml @@ -0,0 +1 @@ +# pk: String diff --git a/models/Platform.yaml b/models/Platform.yaml new file mode 100644 index 0000000..8845d6f --- /dev/null +++ b/models/Platform.yaml @@ -0,0 +1 @@ +# pk: String diff --git a/templates/Linter.html.jinja2 b/templates/Linter.html.jinja2 new file mode 100644 index 0000000..f39e832 --- /dev/null +++ b/templates/Linter.html.jinja2 @@ -0,0 +1,37 @@ + + + + {{ site_title }}: {{ linter.name }} + + + + +
+

{{ linter.name }}

+
+ + + + + + + + + + + + + + + + + +
executable{{ linter.executable }}
Repology{{ linter.repology_id }}
Wikidata{{ linter.wikidata }}
Packages +
    + {% for package in linter.packages %} +
  • {{ package.manager.name }} {{ package.name }} + {% endfor %} +
+
+ + diff --git a/templates/Package.html.jinja2 b/templates/Package.html.jinja2 new file mode 100644 index 0000000..80f6078 --- /dev/null +++ b/templates/Package.html.jinja2 @@ -0,0 +1,31 @@ + + + + {{ site_title }}: {{ package.name }} + + + + +
+

{{ package.name }}

+
+ + + + + + + + + + + + + + + + + +
Package manager{{ package.manager.name }}
Version{{ package.version }}
Source{{ package.source }}
Platform{{ package.platform }}
+ + diff --git a/templates/home.html.jinja2 b/templates/home.html.jinja2 index f87d6a3..b0c7995 100644 --- a/templates/home.html.jinja2 +++ b/templates/home.html.jinja2 @@ -10,10 +10,24 @@

{{ page_title }}

+ +
+

Languages

+
+ + +
+

Linters

+
+ diff --git a/views/home.yaml b/views/home.yaml index b7a6c22..644984d 100644 --- a/views/home.yaml +++ b/views/home.yaml @@ -5,3 +5,4 @@ context: page-title: Welcome dynamic: languages: session.query(Language).all() + linters: session.query(Linter).all() diff --git a/views/languages.yaml b/views/languages.yaml index c62e2ef..2168960 100644 --- a/views/languages.yaml +++ b/views/languages.yaml @@ -1,5 +1,5 @@ path: - template: /{{ language.identifier }} + template: /{{ language.identifier }}/ for-each: language: session.query(Language).all() template: Language diff --git a/views/linters.yaml b/views/linters.yaml new file mode 100644 index 0000000..3c72195 --- /dev/null +++ b/views/linters.yaml @@ -0,0 +1,5 @@ +path: + template: /{{ linter.name }}/ + for-each: + linter: session.query(Linter).all() +template: Linter diff --git a/views/package.yaml b/views/package.yaml new file mode 100644 index 0000000..05a4b7a --- /dev/null +++ b/views/package.yaml @@ -0,0 +1,5 @@ +path: + template: /{{ package.manager.pk }}/{{ package.name }}-{{ package.version }}/ + for-each: + package: session.query(Package).all() +template: Package