Commits

John Costa committed 248bcad

initial

Comments (0)

Files changed (1)

+#!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)