add support for installing additional files
authorRalf Jung <post@ralfj.de>
Sun, 29 Jul 2012 11:11:13 +0000 (13:11 +0200)
committerRalf Jung <post@ralfj.de>
Sun, 29 Jul 2012 11:11:13 +0000 (13:11 +0200)
auto_debuild.py

index 57ee13bb86854d9134be05ac90583d39ff6329d4..c2744125659bf3071c6bbbb6e97767f97989b835 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/python
 #!/usr/bin/python
-import os, shutil, stat, time, subprocess, sys
+import os, stat, time, subprocess, sys
 from collections import OrderedDict
 
 # some utility functions
 from collections import OrderedDict
 
 # some utility functions
@@ -146,6 +146,10 @@ def createDebianFiles(config):
                        print >>f, "Description:",sourceName,"debug smbols (auto-debuild)"
                        print >>f, " Package containing debug symbols for "+sourceName+", auto-generated by auto-debuild."
                        files.append(os.path.join(debDir, "%s-dbg_%s_%s.deb" % (binaryName, version, arch)))
                        print >>f, "Description:",sourceName,"debug smbols (auto-debuild)"
                        print >>f, " Package containing debug symbols for "+sourceName+", auto-generated by auto-debuild."
                        files.append(os.path.join(debDir, "%s-dbg_%s_%s.deb" % (binaryName, version, arch)))
+       # install file
+       with open('debian/'+binaryName+'.install', 'w') as f:
+               for line in config.get('binaryInstall', []):
+                       print >>f, line
        # rules file: build system specific
        with open('debian/rules', 'w') as f:
                # get rule file for build system: may only touch auto_config and auto_clean rules and the dh options
        # rules file: build system specific
        with open('debian/rules', 'w') as f:
                # get rule file for build system: may only touch auto_config and auto_clean rules and the dh options
@@ -186,27 +190,26 @@ def buildDebianPackage(config):
        subprocess.check_call(commandInBuildEnv(config, command))
        shutil.rmtree('debian') # it only contains what we just created
 
        subprocess.check_call(commandInBuildEnv(config, command))
        shutil.rmtree('debian') # it only contains what we just created
 
-# all at once
-def createAndInstall(config, overwriteCheck = False):
+###################################################################
+# if we are called directly as script
+if __name__ == "__main__":
+       import imp, shutil
+       # get config
+       config = imp.load_source('config', 'auto-debuild.conf').__dict__
+       os.remove('auto-debuild.confc')
        # generate debian files
        # generate debian files
+       if os.path.exists('debian'):
+               if raw_input("A debian folder already exists, to you want to remove it (y/N)? ").lower() != "y":
+                       sys.exit(1)
+               shutil.rmtree('debian')
        files = createDebianFiles(config)
        # check if a file is overwritten
        files = createDebianFiles(config)
        # check if a file is overwritten
-       if overwriteCheck:
-               for file in files:
-                       if os.path.exists(file):
-                               if raw_input("Do you want to overwrite %s (y/N)? " % file).lower() != "y":
-                                       sys.exit(1)
+       for file in files:
+               if os.path.exists(file):
+                       if raw_input("Do you want to overwrite %s (y/N)? " % file).lower() != "y":
+                               sys.exit(1)
        # run compilation
        buildDebianPackage(config)
        # install files
        print "Installing created deb files..."
        subprocess.check_call(['sudo', 'dpkg', '--install'] + files)
        # run compilation
        buildDebianPackage(config)
        # install files
        print "Installing created deb files..."
        subprocess.check_call(['sudo', 'dpkg', '--install'] + files)
-
-# if we are called directly as script
-if __name__ == "__main__":
-       # get config
-       import imp
-       config = imp.load_source('config', 'auto-debuild.conf').__dict__
-       os.remove('auto-debuild.confc')
-       # and go for it
-       createAndInstall(config, overwriteCheck=True)