#!/usr/bin/python import sys import os, os.path, shutil from getopt import gnu_getopt, GetoptError def usage(): print '''Usage sys.argv[0] [options] Options: -h, --help Show this help. -r, --release=VERSION Creates ready-for-distribution installation packages. -i, --iconset=NAME Creates an iconset. -v, --version Being used with -i, -r specifies a version for the package. ''' def get_opts(): try: opts, args = gnu_getopt(sys.argv[1:], "hri", ["help", "release=", "iconset="]) except GetoptError: usage() sys.exit(2) flags = [] for opt, arg in opts: if opt in ("-h", "--help"): usage() sys.exit(0) if opt in ("-r", "--release"): flags.append('r') if opt in ("-i", "--iconset"): flags.append('i') return flags, args class package: def mkfile(self, destination): fh = open(destination, 'w') fh.close() def copy(self, orig, destination): if os.path.isdir(orig): if os.path.basename(orig) != ".svn": if os.path.exists(destination) == False: os.mkdir (destination) files = os.listdir(orig) for file in files: self.copy(orig+'/'+file, destination+'/'+file) else: shutil.copyfile(orig, destination) def main(): if sys.argv[1:]: opts = get_opts() pkg = package() root = os.getcwd()+'/..' dest = '/tmp/gekko-complete-0.6.7' if os.path.exists(dest): pkg.delete(dest) os.mkdir (dest) if ('r') in opts[0]: list = os.listdir(root) for file in list: if file == 'utils': os.mkdir(dest+'/utils') utilslist = os.listdir(root+'/utils'); for utilsfile in utilslist: if utilsfile == 'releases': os.mkdir(dest+'/utils/releases'); else: pkg.copy(root+'/utils/'+utilsfile, dest+'/utils/'+utilsfile) if file == 'src': os.mkdir(dest+'/src') srclist = os.listdir(root+'/src') for srcfile in srclist: if srcfile == 'data' or srcfile == 'temp': os.mkdir(dest+'/src/'+srcfile) pkg.copy(root+'/src/'+srcfile+'/.htaccess', dest+'/src/'+srcfile+'/.htaccess') elif srcfile == 'media': os.mkdir(dest+'/src/media') medialist = os.listdir(root+'/src/media') for mediafile in medialist: if mediafile == '.svn': continue if mediafile == 'icons' or mediafile == 'smileys': os.mkdir(dest+'/src/media/'+mediafile) pkg.copy(root+'/src/media/'+mediafile+'/default', dest+'/src/media/'+mediafile+'/default') else: pkg.copy(root+'/src/media/'+mediafile, dest+'/src/media/'+mediafile) elif srcfile == 'templates': os.mkdir(dest+'/src/templates') templatelist = os.listdir(root+'/src/templates') for templatefile in templatelist: if os.path.isdir(root+'/src/templates/'+templatefile) == True: if templatefile == 'default': os.mkdir(dest+'/src/templates/default') tpls = os.listdir(root+'/src/templates/default') for tpl in tpls: if os.path.isdir(root+'/src/templates/default/'+tpl) == True: if tpl == 'css': os.mkdir(dest+'/src/templates/default/css') pkg.copy(root+'/src/templates/default/css/default', dest+'/src/templates/default/css/default') else: pkg.copy(root+'/src/templates/default/'+tpl, dest+'/src/templates/default/'+tpl) elif tpl == 'default.css': pkg.copy(root+'/src/templates/default/default.css', dest+'/src/templates/default/default.css') else: pkg.copy(root+'/src/templates/'+templatefile, dest+'/src/templates/'+templatefile) elif srcfile == 'dbconf.php': pkg.mkfile(dest+'/src/dbconf.php') else: pkg.copy(root+'/src/'+srcfile, dest+'/src/'+srcfile) else: pkg.copy(root+'/'+file, dest+'/'+file); else: usage() exit(0) if __name__ == '__main__': main()