#!/usr/bin/env python import re; from os import system as ossystem; from os import path as ospath; import sys; from parser import Manifest, Package; # [1] get absolute path path = ospath.dirname(ospath.dirname(ospath.realpath(__file__))); # [2] get group option (if set) OPTGROUP = None; ARGS = sys.argv; if( len(sys.argv) > 2 and ( sys.argv[1] == "-g" or sys.argv[1] == "--group" ) ): OPTGROUP = sys.argv[2]; ARGS = ARGS[0:1] + ARGS[3:]; # [3] get packages packages = ARGS[1:]; # [3] search for manifest file man = Manifest.Manifest(); # [5] Install packages installed = []; for pkg in packages: print "\033[38;5;208m[install](%d/%d) %s\033[0m" % (packages.index(pkg)+1, len(packages), pkg); exitcode = ossystem("sudo apt-get install %s" % pkg); # if all ran successfully if ( exitcode == 0 ): print "\033[38;5;78msuccess\033[0m"; installed.append( pkg ); else: print "\033[38;5;161merror\033[0m"; # [6] update manifest for pkg in installed: print "\033[38;5;39m[notifying](%d/%d) %s\033[0m" % (installed.index(pkg)+1, len(installed), pkg); # if existing package update it if( man.hasPackage(pkg) ): pkgReg = man.getPackage(pkg); pkgReg.install(); if( OPTGROUP != None ): man.mvPackage(pkg, OPTGROUP); # else create package else: pkgNew = Package.Package(pkg, 'x'); if( OPTGROUP != None ): man.addPackage(pkgNew, OPTGROUP); else: man.addPackage(pkgNew); man.save();