Skip to content

gitenberg-dev/gitberg

Repository files navigation

Gitberg

Build Status PyPI version

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.

Usage

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

Examples

gitberg list --rdf_library /Documents/gitenberg/cache/epub 181,565,576

Config

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).

Development

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.

Testing

To run project tests do:

python setup.py test

Packaging

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