├── debian
├── source
│ └── format
├── nim-package-directory.install
├── nim-package-directory.conf
├── rules
├── nim-package-directory.postinst
├── control
├── changelog
└── nim-package-directory.service
├── public
├── js
│ ├── jquery.min.js
│ └── highlight.min.js
├── css
│ ├── an-old-hope.css
│ ├── an-old-hope.min.css
│ ├── style.css
│ ├── lime.min.css
│ └── nimdoc.out.css
├── img
│ ├── nimble.png
│ ├── loading1.gif
│ ├── loading2.gif
│ ├── logo-simple.png
│ ├── nimble-logo.png
│ ├── feed-icon-14x14.png
│ ├── nimble_search_logo.png
│ ├── badge-loading.svg
│ └── logo.svg
└── search.xml
├── .gitignore
├── conf.json.example
├── nim.cfg
├── templates
├── build_output.tmpl
├── doc_files_list.tmpl
├── doc_success.svg
├── success.svg
├── doc_running.svg
├── doc_waiting.svg
├── version-template-blue.svg
├── build_running.svg
├── doc_fail.svg
├── fail.svg
├── build_waiting.svg
├── loader.tmpl
├── rss.tmpl
├── jsondoc_pkg_symbols.tmpl
├── jsondoc_symbols.tmpl
├── about.tmpl
├── build_history.tmpl
├── pkg_list.tmpl
├── pkg.tmpl
├── base.tmpl
└── home.tmpl
├── .editorconfig
├── package_directory.nimble
├── email.nim
├── persist.nim
├── .circleci
└── config.yml
├── README.adoc
├── tests
├── test_package_directory.nim
├── test_signatures_functional.nim
├── test_signatures.nim
└── test_functional.nim
├── util.nim
├── friendly_timeinterval.nim
├── github.nim
├── signatures.nim
├── package_directory.nim
└── LICENSE
/debian/source/format:
--------------------------------------------------------------------------------
1 | 3.0 (quilt)
2 |
--------------------------------------------------------------------------------
/public/js/jquery.min.js:
--------------------------------------------------------------------------------
1 | /usr/share/javascript/jquery/jquery.min.js
--------------------------------------------------------------------------------
/public/js/highlight.min.js:
--------------------------------------------------------------------------------
1 | /usr/share/javascript/highlight.js/highlight.min.js
--------------------------------------------------------------------------------
/public/css/an-old-hope.css:
--------------------------------------------------------------------------------
1 | /usr/share/javascript/highlight.js/styles/an-old-hope.css
--------------------------------------------------------------------------------
/public/img/nimble.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FedericoCeratto/nim-package-directory/HEAD/public/img/nimble.png
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | nimcache/
2 | makefile
3 | conf.json
4 | node_modules
5 | .cache.json
6 | package_directory
7 | pkgs.log
8 |
--------------------------------------------------------------------------------
/public/img/loading1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FedericoCeratto/nim-package-directory/HEAD/public/img/loading1.gif
--------------------------------------------------------------------------------
/public/img/loading2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FedericoCeratto/nim-package-directory/HEAD/public/img/loading2.gif
--------------------------------------------------------------------------------
/public/img/logo-simple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FedericoCeratto/nim-package-directory/HEAD/public/img/logo-simple.png
--------------------------------------------------------------------------------
/public/img/nimble-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FedericoCeratto/nim-package-directory/HEAD/public/img/nimble-logo.png
--------------------------------------------------------------------------------
/public/img/feed-icon-14x14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FedericoCeratto/nim-package-directory/HEAD/public/img/feed-icon-14x14.png
--------------------------------------------------------------------------------
/public/img/nimble_search_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FedericoCeratto/nim-package-directory/HEAD/public/img/nimble_search_logo.png
--------------------------------------------------------------------------------
/debian/nim-package-directory.install:
--------------------------------------------------------------------------------
1 | package_directory usr/bin
2 | public var/lib/nim_package_directory
3 | debian/nim-package-directory.conf /etc
4 |
--------------------------------------------------------------------------------
/debian/nim-package-directory.conf:
--------------------------------------------------------------------------------
1 | {
2 | "github_token": "CHANGEME",
3 | "packages_list_fname": "packages.json",
4 | "public_baseurl": "https://CHANGEME",
5 | "port": 5000,
6 | "tmp_nimble_root_dir": "/tmp/nim_package_directory/cache"
7 | }
8 |
--------------------------------------------------------------------------------
/conf.json.example:
--------------------------------------------------------------------------------
1 | {
2 | "github_token": "",
3 | "log_fname": "pkgs.log",
4 | "packages_list_fname": "packages.json",
5 | "public_baseurl": "https://nimble.directory",
6 | "port": 5000,
7 | "tmp_nimble_root_dir": "/var/lib/nim_package_directory/cache"
8 | }
--------------------------------------------------------------------------------
/nim.cfg:
--------------------------------------------------------------------------------
1 | -d:ssl
2 | --checks:on
3 | --assertions:on
4 | --lineTrace:on
5 | hint[XDeclaredButNotUsed]=on
6 | gcc.options.always = "-w -D_FORTIFY_SOURCE=2 -O1 -Wformat -Wformat-security -fPIE -fstack-protector-all"
7 | gcc.options.linker = "-ldl -fPIE -pie -z relro -z now"
8 |
--------------------------------------------------------------------------------
/debian/rules:
--------------------------------------------------------------------------------
1 | #!/usr/bin/make -f
2 | export DH_VERBOSE=1
3 | # hardened using nim.cfg
4 |
5 | %:
6 | dh $@
7 |
8 | override_dh_auto_build:
9 | nimble --verbose c -d:systemd -d:release --checks:on --assertions:on --stackTrace:on --lineTrace:on package_directory.nim
10 |
11 | override_dh_auto_test:
12 | true
13 |
--------------------------------------------------------------------------------
/templates/build_output.tmpl:
--------------------------------------------------------------------------------
1 | #? stdtmpl | standard
2 | #proc generate_run_output_page(pname, run_output: string, build_time, expire_time: Time): string =
3 | # result = ""
4 |
5 |
Build output from ${pname}
6 |Built on ${build_time}
7 |${run_output}
8 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig is awesome: http://EditorConfig.org
2 |
3 | # top-most EditorConfig file
4 | root = true
5 |
6 | # Unix-style newlines with a newline ending every file
7 | [*]
8 | end_of_line = lf
9 | insert_final_newline = true
10 |
11 | [*.scss]
12 | indent_style = tab
13 | indent_size = 4
14 |
15 | [*.tmpl]
16 | indent_style = space
17 | indent_size = 4
18 |
--------------------------------------------------------------------------------
/package_directory.nimble:
--------------------------------------------------------------------------------
1 | # Package
2 |
3 | version = "0.1.1"
4 | author = "Federico Ceratto"
5 | description = "Nim package directory"
6 | license = "GPLv3"
7 |
8 | bin = @["package_directory"]
9 |
10 | # Dependencies
11 |
12 | requires "nim >= 1.0.0", "jester >= 0.4.1", "tempfile", "sdnotify", "statsd_client > 0.1.0", "morelogging >= 0.2.0"
13 |
14 | task builddeb, "Generate deb":
15 | exec "dpkg-buildpackage -us -uc -b -j4"
16 |
--------------------------------------------------------------------------------
/debian/nim-package-directory.postinst:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | set -e
4 |
5 | if [ "$1" = "configure" ]; then
6 | if ! getent passwd nim-package-directory >/dev/null; then
7 | adduser --quiet --system --group --no-create-home --home /var/lib/nim_package_directory nim-package-directory
8 | fi
9 | mkdir -p /var/lib/nim_package_directory/
10 | chown nim-package-directory -Rv /var/lib/nim_package_directory/
11 | fi
12 |
13 | #DEBHELPER#
14 |
15 | exit 0
16 |
--------------------------------------------------------------------------------
/debian/control:
--------------------------------------------------------------------------------
1 | Source: nim-package-directory
2 | Section: web
3 | Priority: optional
4 | Maintainer: Federico Ceratto ${symbol.code}${symbol.code}
6 | This service allows you to explore Nim packages known to Nimble.
8 | It tests package installation and generates documentation using "nim doc".
9 | It also generates badges with the output of install test and documentation generation that you can link to.
The badges look like:
To link install test and documentation generation in MarkDown use:
13 | 14 |[](https://nimble.directory/ci/badges/jester/nimdevel/output.html)15 |
[](https://nimble.directory/ci/badges/jester/nimdevel/doc_build_output.html)16 |
Learn here how you can add your own packages.
17 |You can contribute to this website on GitHub.
18 || name | 15 |
|---|
| ${pname} |
| name | 29 |
|---|
| ${pname} |
| name | 43 |build date | 44 |build output | 45 |doc gen output | 46 |
|---|---|---|---|
| 52 | ${i.name} 53 | | 54 |${i.build_time} | 55 |56 | # if i.build_status == BuildStatus.OK: 57 | 58 | ${build_success_badge} 59 | # else: 60 | 61 | ${build_fail_badge} 62 | 63 | # end 64 | | 65 |66 | # if i.doc_build_status == BuildStatus.OK: 67 | 68 | ${doc_success_badge} 69 | 70 | # else: 71 | # if i.build_status == BuildStatus.OK: 72 | 73 | ${doc_fail_badge} 74 | 75 | # else: 76 | 77 | ${doc_fail_badge} 78 | 79 | # end 80 | # end 81 | | 82 |
${pkg["description"].str}
20 | 21 | 22 | 23 | 24 |The package README is not present or from an unsupported forge.
34 | #end 35 |Latest versions: 47 | #for semver in pkg["github_latest_versions_str"].getElems(): 48 | ${semver.str} 49 | #end 50 |
51 | #else: 52 |No tagged versions available
53 | #end 54 | #end 55 |56 | Licence: 57 | #let licns = pkg["license"].str.toLowerAscii.strip 58 | #if licns == "mit": 59 | MIT 60 | #elif licns == "apache2" or licns == "apache": 61 | Apache 2 62 | #elif licns == "bsd": 63 | BSD 64 | #elif licns == "bsd2" or licns == "bsd 2-clause": 65 | BSD 2-Clause 66 | #elif licns == "bsd3" or licns == "bsd 3-clause": 67 | BSD 3-Clause 68 | #elif licns == "gplv2": 69 | GPL2 70 | #elif licns == "gplv3": 71 | GPL3 72 | #elif licns == "gpl": 73 | GPL 74 | #elif licns == "lgplv2": 75 | LGPL2 76 | #elif licns == "lgplv3": 77 | LGPL3 78 | #elif licns == "lgpl": 79 | LGPL 80 | #elif licns == "cc0": 81 | Creative Commons Zero 82 | #elif licns == "cc" or licns == "cc-by-nc-sa" or licns == "cc-by-nc-nd": 83 | Creative Commons 84 | #elif licns == "wtfpl": 85 | WTFPL 86 | #else: 87 | ${pkg["license"].str} 88 | #end 89 |
90 | 91 | #if pkg.has_key("web"): 92 | 93 | #end 94 | #if pkg.has_key("doc"): 95 | 96 | #end if 97 |Discover Nim's ecosystem of libraries and tools
8 |
34 | ${pkg["description"].str}
69 | 83 |${pkg["description"].str}
102 | 121 |${pkg["description"].str}
140 | 159 |Runtime: $#
426 |Queried packages count: $#
427 |