Skip to content

inseven/psion-software-index

Repository files navigation

Psion Software Index

build

Tools for generating an index of Psion software

Usage

Install the dependencies:

scripts/install-dependencies.sh

Download the assets:

tools/indexer libraries/full.yaml sync

Generate the index:

tools/indexer libraries/full.yaml index

Apply the overlay:

tools/indexer libraries/full.yaml overlay

Build the website:

scripts/build-site.sh

These steps are intentionally separated to make it easy to cache different phases of index generation, especially when using GitHub Actions.

Development

Check out the source, remembering to clone the submodules:

git clone [email protected]:jbmorley/psion-software-index.git
cd psion-software-index
git submodule update --init --recursive

It can be useful to be able to run the indexer on a smaller library:

tools/indexer libraries/3lib.yaml sync index overlay

You can serve the site locally as follows:

cd site
bundle exec jekyll serve --watch

Subsequent 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 overlay

Contributing

Contributions are welcome in the form of PRs or GitHub Issues.

References