Source

virtualenv-bootstrap / bootstrap.py

#!python
################################################################################
# Copyright (C) 2011  John M. Costa, III <john.costa@gmail.com>
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
################################################################################
import os
import subprocess
from optparse import OptionParser

UPGRADE='upgrade'
CLEAN='clean'

# ------------------------------------------------------------------------------
def define_parse_args():
    # --------------------------------------------------------------------------
    parser=OptionParser()

    parser.add_option(
        "-u",
        "--upgrade",
        action="store_true",
        dest=UPGRADE,
        default=False,
        help="upgrade pacakages (if possible)"
    )
    parser.add_option(
        "-c",
        "--clean",
        action="store_true",
        dest=CLEAN,
        default=False,
        help="clean non root packages"
    )
    return parser

# ------------------------------------------------------------------------------
def execute(virtualenv, options, args, cmd=["pip","install"]):
    # --------------------------------------------------------------------------
    """ builds the environment.  Upgrading, cleaning, etc upon passing the args

    """

    #This is kind of backwards, the default is actually pip install
    print options
    if getattr(options,CLEAN, False):
        cmd=['virtualenv', '--clear', virtualenv]
    else:
        cmd.extend(["-E", virtualenv])
        cmd.extend(["--requirement",os.path.join(file_path, "requirements/requirements.txt")])

        if getattr(options,UPGRADE, False):
            cmd.append("--upgrade")

    try:
        subprocess.call(cmd)
        exit(0)
    except Exception, e:
        exit(1)


# ------------------------------------------------------------------------------
# Define Options
parser = define_parse_args()
(options, args) = parser.parse_args()

# ------------------------------------------------------------------------------
# Use the virtual environment
if "VIRTUAL_ENV" not in os.environ:
    sys.stderr.write("$VIRTUAL_ENV not found.\n\n")
    parser.print_usage()
    sys.exit(-1)
virtualenv = os.environ["VIRTUAL_ENV"]
file_path = os.path.dirname(__file__)

# ------------------------------------------------------------------------------
# execute
execute(virtualenv, options, args)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.