[Apt-offline-devel] [SCM] Offline APT Package Manager branch, master, updated. 0.9.4-13-ge2191dd

Ritesh Raj Sarraf rrs at researchut.com
Sun Oct 25 16:56:03 UTC 2009


The following commit has been merged in the master branch:
commit 7f97464d10fbd1488092cc1dddfc22f4af9d5cab
Author: Ritesh Raj Sarraf <rrs at researchut.com>
Date:   Sun Oct 25 17:10:13 2009 +0530

    option for set command for apt package sources

diff --git a/AptOfflineCoreLib.py b/AptOfflineCoreLib.py
index 9de8183..894cfe4 100644
--- a/AptOfflineCoreLib.py
+++ b/AptOfflineCoreLib.py
@@ -1111,6 +1111,7 @@ def installer( args ):
 def setter(args):
         Str_SetArg = args.set
         List_SetInstallPackages = args.set_install_packages
+        List_SetInstallSrcPackages = args.set_install_src_packages
         Str_SetInstallRelease = args.set_install_release
         Bool_SetUpdate = args.set_update
         Bool_SetUpgrade = args.set_upgrade
@@ -1248,6 +1249,33 @@ def setter(args):
                         log.err( "This argument is supported only on Unix like systems with apt installed\n" )
                         sys.exit( 1 )
         
+        if List_SetInstallSrcPackages != None and List_SetInstallSrcPackages != []:
+                if platform.system() in supported_platforms:
+                        if os.geteuid() != 0:
+                                log.err( "This option requires super-user privileges. Execute as root or use sudo/su\n" )
+                                sys.exit(1)
+                        package_list = ''
+                        for pkg in List_SetInstallSrcPackages:
+                                package_list += pkg + ', '
+                        log.msg( "\nGenerating database of source packages %s.\n" % (package_list) )
+                        os.environ['__apt_set_install'] = Str_SetArg
+                        os.environ['__apt_set_install_src_packages'] = ''
+                        
+                        for x in List_SetInstallSrcPackages:
+                                os.environ['__apt_set_install_src_packages'] += x + ' '
+                                
+                        if Str_SetInstallRelease:
+                                os.environ['__apt_set_install_release'] = Str_SetArg
+                                if os.system( '/usr/bin/apt-get -qq --print-uris -t $__apt_set_install_release source $__apt_set_install_src_packages >> $__apt_set_install' ) != 0:
+                                        log.err( "FATAL: Something is wrong with the apt system.\n" )
+                        else:
+                                #FIXME: Find a more Pythonic implementation
+                                if os.system( '/usr/bin/apt-get -qq --print-uris source $__apt_set_install_src_packages >> $__apt_set_install' ) != 0:
+                                        log.err( "FATAL: Something is wrong with the apt system.\n" )
+                else:
+                        log.err( "This argument is supported only on Unix like systems with apt installed\n" )
+                        sys.exit( 1 )
+        
 def gui(args):
         Bool_GUI = args.gui
         log.msg("Graphical Interface is currently not ready.\n")
@@ -1307,6 +1335,9 @@ def main():
         parser_set.add_argument("--install-packages", dest="set_install_packages", help="Packages that need to be installed",
                           action="store", type=str, nargs='*', metavar="PKG")
         
+        parser_set.add_argument("--install-src-packages", dest="set_install_src_packages", help="Source Packages that need to be installed",
+                          action="store", type=str, nargs='*', metavar="SOURCE PKG")
+        
         parser_set.add_argument("--release", dest="set_install_release", help="Release target to install packages from",
                           action="store", type=str, metavar="release_name" )
         

-- 
Offline APT Package Manager



More information about the Apt-offline-devel mailing list