Skip to content

A suite of tools created to standardize common project management tasks for UNB packages and applications

Notifications You must be signed in to change notification settings

ellamental/unb-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UNB Command Line Interface (unb-cli)

Warning

This package is in the process of being converted for public use. There will be some rough edges.

unb-cli is a suite of tools created to standardize common project management tasks for UNB packages and applications.

unb-cli is available semi-publicly for the convenience of developers contributing to UNB packages. This package should be considered "unreleased" and absolutely no promises are made to keep backward compatibility in any way.

Installation

Install from the shell with:

pip install --user unb-cli --extra-index-url https://pypi.fury.io/nickfrez/

Or add the following to your requirements.txt:

--extra-index-url https://gemfury.com/nickfrez
unb-cli==0.0.12

Or for dev install, clone the repo and use:

pip install -e /path/to/unb-cli/

Depending on your configuration and how you install unb-cli you may need to add something like the following to your shell startup scripts (.bash-profile, .bashrc, etc.):

if [[ $OSTYPE == linux* ]]; then
    # Linux
    export PATH="$HOME/.local/bin:$PATH"
    source $HOME/.local/bin/unb.sh

elif [[ $OSTYPE == darwin* ]]; then
    # OS X
    export PATH="/usr/local/bin:$PATH"
    source /usr/local/bin/unb.sh

else
    # Unknown
    echo "OS Unknown.  Did not source unb command."
fi

Sourcing the unb.sh script makes the unb command available. The unb command is a lightweight bash function that wraps the unb-cli command to allow unb to modify the current shell session (for things like activating Python virtual environments).

Examples throughout this project and its documentation will assume that you use the unb function, instead of calling unb-cli directly.

Configuration

unb-cli project support can be configured through ~/.unb-cli.d/. This aspect of unb-cli is sorely under-documented.

Projects

Many UNB CLI commands operate on/in a project. A "project" is generally defined as a git repo. The "current project" is the repository stored at the first parent directory of $PWD that contains a .git directory.

Projects may be configured by a project configuration Python script located at ~/.unb-cli.d/projects/project-name.py.

For more documentation see:

$ unb project -h

Templates

$ unb template -h

Templates provide a convenient method of creating new projects, directories and/or files that conform to a standardized layout. Templates are powered by jinja2.

Templates are (currently) assumed to be stored at ~/.unb-cli.d/templates/*. At some point in the near future, a separate project will be released containing the standard templates used for UNB projects. Until that point, the template system is going to remain largely undocumented.

Example

$ unb
usage: unb-cli [-h]
               {b,dj,docs,gemfury,heroku,lint,node,pip,project,shell,template,version}
               ...
unb-cli: error: too few arguments
$ unb -h
usage: unb-cli [-h]
               {b,dj,docs,gemfury,heroku,lint,node,pip,project,shell,template,version}
               ...

positional arguments:
  {b,dj,docs,gemfury,heroku,lint,node,pip,project,shell,template,version}
    b                   Execute functions contained in a project's
                        project_root/build.py file.
    dj                  Django commands and tasks.
    docs                Documentation tools.
    gemfury             Gemfury package management tools
    heroku              Heroku project/environment management tools
    lint                Run linters.
    node                node.js tools
    pip                 pip interface and tools
    project             Project management utilities
    shell               Run a Python shell.
    template            Create projects or directories from templates.
    version             Utilities for versioning and releases.

optional arguments:
  -h, --help            show this help message and exit

Documentation

Currently unb-cli is documented primarily through the -h option available in the shell.

$ unb -h

Each subcommand also has -h and --help options.

Issue Reporting and Contact Information

If you have any problems with this software, please take a moment to report them by email to nick@unb.services.

If you are a security researcher or believe you have found a security vulnerability in this software, please contact us by email at nick@unb.services.

Contributing

Contributions are always welcome, whether it's reporting a bug or sending a pull request. If you want to help, but don't know where to start, email me at nick@unb.services and I'll try to point you in the right direction.

Copyright and License Information

Copyright (c) 2015 Nick Zarczynski

This project is licensed under the MIT license. Please see the LICENSE file for more information.

About

A suite of tools created to standardize common project management tasks for UNB packages and applications

Resources

Stars

Watchers

Forks

Packages

No packages published