Tools for generating an index of Psion software
Install the dependencies:
brew install p7zipAnd then:
scripts/install-dependencies.shDownload the assets:
tools/indexer libraries/full.yaml syncGenerate the index:
tools/indexer libraries/full.yaml indexPerform grouping:
tools/indexer libraries/full.yaml groupApply the overlay:
tools/indexer libraries/full.yaml overlayBuild the website:
scripts/build-site.shThese steps are intentionally separated to make it easy to cache different phases of index generation, especially when using GitHub Actions.
Check out the source, remembering to clone the submodules:
git clone git@github.com:jbmorley/psion-software-index.git
cd psion-software-index
git submodule update --init --recursiveIt can be useful to be able to run the indexer on a smaller library:
tools/indexer libraries/3lib.yaml sync index group overlayYou can serve the site locally as follows:
cd site
bundle exec jekyll serve --watchSubsequent calls to update the index will cause the site to be rebuilt automatically.
Note: The indexer runs multiple commands and Lua scripts during the indexing process (approximately 100,000 for the current library). Small changes in process launch times can therefore significantly impact index generation performance, and shim-based environment managers like asdf can cause real problems. To work around this, the indexer respects the LUA_PATH environment variable to allow shims to be bypassed. For example,
LUA_PATH=/opt/homebrew/bin/lua tools/indexer libraries/3lib.yaml sync index group overlayContributions are welcome in the form of PRs or GitHub Issues.