GITenberg is a project to collectively curate ebooks on GitHub. Gitberg is a command line tool to automate tasks on books stored in git repositories.
This project provides a gitberg
command that does the following:
-
gitberg fetch <bookid>
fetches books from PG -
gitberg make <bookid>
makes a local git repo with extra files -
gitberg push <bookid>
creates a repo on github and pushes to it (one per book) -
gitberg all <bookid> <bookend>
fetches, makes and pushes a range of books -
gitberg list <bookid_start>
fetches, makes and pushes a range of books -
gitberg apply <action> <book_repo_name>
applies an action -
gitberg metadata <bookid>
prints the yaml metadata
gitberg list --rdf_library /Documents/gitenberg/cache/epub 181,565,576
Some commands require a config file before they can be used.
These commands will ask for config values to make a correct configuration.
The config file in linux is located at ~/.config/gitberg/config.yaml
.
If the saved configuration fails basic sanity checks (like files/folders being
missing), these commands will ask for the config values again.
Main config values:
gh_user: <your github account name>
gh_password: <your github account password> #deprecated
library_path: '~/data/library'
rdf_library: <location of your cache of the PG RDF demp>
gh_access_token: <a github access token> # use instead of the password
To push to github, you will need to configure SSH keys. See [Github's documentation}(https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/)
You may also provide values for these as environment variables named gitberg_gh_user etc (case insensitive).
To run project in development mode clone the project and do:
pip install .
some commands will require you to run gitberg from the cloned directory.
To run project tests do:
python setup.py test
This project is available as a python package. To install, use
pip install gitberg
To build this python package, use setup.py
python setup.py sdist