fabric/modules/pip.py
Ronny Abraham 328de1596b changed param in freeze to from default none to 'help'
modified:   modules/pip.py
2016-09-21 16:10:46 +03:00

134 lines
3.5 KiB
Python

from fabric.api import env, task
from fabric.operations import run
import logging
from utils import virtualenv_source, virtualenv
from utils import print_console
@task
def setup_virtualenv():
configuration = env.config
if env.debug:
logging.basicConfig(
format='\n%(levelname)s: deploy.setup_virtualenv %(message)s',
level=logging.DEBUG)
mkvirtualenv_cmd = "mkvirtualenv --no-site-packages " \
"{virtualenv_name}".format(
virtualenv_name=configuration.virtualenv.name)
if env.debug:
logging.debug("virtualenv.workon : %s"
% configuration.virtualenv.workon)
logging.debug("virtualenv.activate : %s"
% configuration.virtualenv.activate)
logging.debug("virtualenv.name : %s"
% configuration.virtualenv.name)
logging.debug("virtualenv.paths.bin : %s"
% configuration.virtualenv.paths.bin)
logging.debug("virtualenv.paths.root : %s"
% configuration.virtualenv.paths.root)
logging.debug("with virtualenv_source(): run(\"\n\t%s\n\t\")".format(
mkvirtualenv_cmd))
else:
# run("source virtualenvwrapper.sh; mkvirtualenv "
# "--no-site-packages {virtualenv_name}".format(
# virtualenv_name=configuration.virtualenv.name))
with virtualenv_source():
run(mkvirtualenv_cmd)
@task
def setup():
"""
install all packages via pip
"""
configuration = env.config
if env.debug:
logging.basicConfig(
format='\n%(levelname)s: deploy.pip %(message)s',
level=logging.DEBUG)
pipinstall_cmd = "pip install -r {requirements}".format(
requirements=configuration.virtualenv.requirements)
if env.debug:
logging.debug("with virtualenv(): run(\"\n\t%s\n\t\")" %
pipinstall_cmd)
else:
with virtualenv():
run(pipinstall_cmd)
@task
def install(package=None):
"""
install a packages via pip
"""
configuration = env.config
import sys
if not package:
print_console("you must specify a package to be installed")
sys.exit()
if package == "--all":
pipinstall_cmd = "pip install -r {requirements_file}".format(
requirements_file=configuration.virtualenv.requirements)
else:
pipinstall_cmd = "pip install {package}".format(
package=package)
if env.debug:
print_console("pipinstall_cmd : %s" % pipinstall_cmd)
else:
with virtualenv():
run(pipinstall_cmd)
@task
def freeze(param='help'):
configuration = env.config
msg_help = """
pip.freeze takes one of three values:
\thelp - this help message
\tTrue - update the pip package list the freeze output
\tFalse (default) - print the freeze output to the console
"""
from utils import booleanize, handle_help
import sys
if handle_help(param, msg_help, 'help'):
sys.exit()
else:
try:
param = booleanize(param)
except TypeError:
print "the parameter value you gave, \"%s\" , is not" \
" a valid parameter." % param
print msg_help
sys.exit()
if param:
cmd_pipfreeze = "pip freeze > {requirements}".format(
requirements=configuration.virtualenv.requirements)
else:
cmd_pipfreeze = "pip freeze"
with virtualenv():
run(cmd_pipfreeze)