Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Welcome to the reapack-index wiki! reapack-index is a package indexer for git-based ReaPack repositories. This software is intended to be used by repository owners and maintainers.
This page explains how to install reapack-index and how to use it to create and update your own repository (index file). The documentation for the metadata header format is available in Packaging Documentation.
ReaPack repositories are made of a single XML index file describing its contents. See Index Format on ReaPack's wiki to learn more.
- Getting started
- Updating the index
- Testing a package header
- Filling the about section
- On macOS:
- Install Homebrew (recommended)
brew install rubyto install a newer version of Ruby (v2.3+ is required)
brew install cmake pkg-configto install required build dependencies
gem install reapack-index
- On Linux or other Unix systems:
- Install Ruby v2.3+ with development headers, cmake and pkg-config
gem install reapack-index
- On Windows:
Start by opening a command prompt:
- On macOS: Open Terminal.app from the directory /Applications/Utilities/
- On Windows: Type "cmd.exe" in the start menu and hit the Return key
Then navigate to the location of your local git repository with the following command:
# macOS: cd /path/to/your/repository # Windows: cd C:\Path\To\Your\Repository
Let's start by testing your repository to see if it can be indexed as it is:
If everything goes well, you should see something similar to this with each dot representing a valid package:
................................................................................ Finished checks for 80 packages with 0 failures
If you see a different output containg 'F' and errors, fix them and recheck before continuing (see also Packaging Documentation).
Now let's create the index file which will tell ReaPack what is available in the repository. Commit any modified files in git then run this command:
reapack-index --name 'FooBar Scripts'
All done! Your repository should now be ready to be imported into ReaPack using the raw url to the index.xml file (typically
https://github.com/USER/REPO/raw/master/index.xml for repositories hosted on GitHub).
See Packaging Documentation for complete instructions on how to creating packages.
Updating the index
To scan new commits and applies the changes to the index, run
reapack-index without any argument:
If you wish to alter a released version (eg. to fix a mistake), commit your changes then run:
It is also possible to re-index a commit or a file that was scanned previously:
reapack-index --scan 7a4abf8 reapack-index --scan 7a4abf8 --amend reapack-index --scan 'MIDI Editor/Some File.lua'
Testing a package header
It is possible to see how reapack-index will index a package header even if the change hasn't been committed yet and without updating the version number.
ruby -rjson -rmetaheader -e 'puts JSON.pretty_generate(MetaHeader.from_file(ARGV.first.to_s).to_h)' /path/to/your/repository/packageFile
Filling the about section
ReaPack can display a formatted description of your repository and additional links.
This uses the RTF format internally, which can be opened and edited in WYSIWYG software like Microsoft Office or Textedit.app. Many other formats (such as Markdown) are supported if Pandoc is installed on your computer.
To put the content of README.md in the about dialog, run this command:
The generated RTF file can be exported and opened it with a specialized editor:
reapack-index --dump-about > about_dumped.rtf # open about_dumped.rtf in your favorite editor and make edits # then after saving your changes, import it back: reapack-index --about=about_dumped.rtf # about_dumped.rtf can be deleted at this point
Adding or editing links:
reapack-index --link 'http://example.com' reapack-index --link 'Link Label=http://example.com/page.html' reapack-index --donation-link 'http://example.com'
reapack-index --link '-http://example.com' reapack-index --donation-link '-Link Label'