135 lines
3.5 KiB
Python
135 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=False):
|
||
|
|
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)
|