::\`--._,'.::.`._.--'/:: Multiple
::::. ` __::__ ' .:::: repositories
::::::-:.`'..`'.:-:::::: management.
::::::::\ `--' /::::::::
Yoda is compatible with following python versions:
- Python 2.7.x
- Python 3.x
- PyYaml
- pycolorizer
- PrettyTable
- argcomplete
- mock
- pep8
- flake8
- tox
- nose
- coverage
- testfixtures
Yoda is packaged on Pypi, so you can install it with the following command:
pip install yoda
to uninstall yoda:
pip uninstall yoda
You can also install development version:
pip install https://github.com/Numergy/yoda/archive/master.zip
$ yoda --help
usage: Yoda [-h] [-d] [--version] [subcommand] ...
Manage your repositories easier. Each workspaces are subcommands, type `yoda
workspace_name -h` to show help.
positional arguments:
[subcommand]
config Get and set global configurations
workspace Workspace managment
jump Jump to directory
update Update repositories
show Show workspace details
status Show repositories status
optional arguments:
-h, --help show this help message and exit
-d, --debug show debug informations
--version show program's version number and exit
The workspace
subcommand allows you to manages your yoda's workspaces.
A workspace contains some properties (path, repositories list).
You can create workspace simply with a name
and a path
:
yoda workspace add ws_name /path/to/workspace
To remove a workspace:
yoda workspace remove ws_name
To print workspace list:
yoda workspace list
show
subcommand allows you to print a workspace details. You can pass --all options to show details for all registered workspaces.
yoda show my_ws
config
subcommand allows you to set
and get
yoda's configuration.
$ yoda config set logfile /var/log/yoda.log
$ yoda config get logfile
/var/log/yoda.log
status
subcommand allows you to show repositories status in a workspace.
For example, to show status of all repositories in my_ws
workspace:
yoda status my_ws
You can show status for a single repository:
yoda status my_ws/my_repo
yoda status my_repo
To show status of all workspaces, use --all
option:
yoda status --all
update
subcommand is similary of status
subcommand.
To update all repositories in my_ws
workspace:
yoda update my_ws
For a single repository:
yoda update my_ws/my_repo
To update all workspaces:
yoda update --all
jump
subcommand allows you to spawn new shell in repository or workspace path.
sliim@host:~$ yoda jump my_ws/my_repo
Spawn new shell on `/path/to/my_ws/my_repo/`
Use Ctrl-D to exit and go back to the previous directory
sliim@host:/path/to/my_ws/my_repo$
Each defined workspace in yoda have subcommands, for example if you have a workspace named my_ws
you can type:
$ yoda my_ws --help
usage: yoda my_ws [-h] {add,remove,sync} ...
Manage repositories in my_ws workspace
positional arguments:
{add,remove,sync}
add Add repository to my_ws workspace
remove Remove repository from my_ws workspace
sync Synchronize all directories stored in workspace
optional arguments:
-h, --help show this help message and exit
To enable zsh completions, copy file tools/zsh-completions/_yoda
in your zsh completions directory.
Be sure you have enabled the zsh completions system.
For example with completions directory ~/.zsh.d/completions/
:
fpath=($HOME/.zsh.d/completions $fpath)
autoload -U compinit
compinit -i
Yoda use argcomplete for bash completion.
To enable bash completions, you must execute activate-global-python-argcomplete
command that will try to install the file
bash_completion.d/python-argcomplete.sh
into an appropriate location on your system
(/etc/bash_completion.d/
or ~/.bash_completion.d/
). If it fails, but you know the correct location of your bash completion scripts directory, you can specify it with --dest
:
activate-global-python-argcomplete --dest=/path/to/bash_completion.d
If global completion is not activated, put this piece of code in your .bashrc
.
eval "$(register-python-argcomplete yoda)"
Yoda use tox, a test command line tool.
Run tox
command in the project's root directory to run unittests, and flake8/pep8 checkers.
You can also run each tests independently:
To run unittests:
$ nosetests
To run checkers:
$ pep8 ./
$ flake8 ./
See COPYING file.
To see what has changed in recent versions of yoda, see the CHANGELOG