2 # -*- coding: iso-8859-1 -*-
4 ################################################################################
6 # 2008 June 27th by Marcus 'EgS' Eggenberger <egs@quassel-irc.org> #
8 # The author disclaims copyright to this source code. #
9 # This Python Script is in the PUBLIC DOMAIN. #
11 ################################################################################
13 # ==============================
15 # ==============================
21 # ==============================
23 # ==============================
27 SOURCE_DIR = sys.argv[1]
30 BUNDLE_NAME = "Quassel Client"
31 EXE_NAME = "quasselclient"
33 EXE_NAME = sys.argv[3]
34 BUNDLE_NAME = sys.argv[2]
36 # make the dir of the exe the target dir
37 if(os.path.dirname(EXE_NAME)):
38 CONTENTS_DIR = os.path.dirname(EXE_NAME) + "/"
39 CONTENTS_DIR += BUNDLE_NAME + ".app/Contents/"
41 BUNDLE_VERSION = commands.getoutput("git --git-dir=" + SOURCE_DIR + "/.git/ describe")
42 ICONSET_FOLDER = "pics/iconset/"
47 os.makedirs(CONTENTS_DIR + "MacOS")
48 os.makedirs(CONTENTS_DIR + "Resources")
53 def copyFiles(exeFile, iconset):
54 os.system("cp %s %sMacOs/%s" % (exeFile, CONTENTS_DIR.replace(' ', '\ '), BUNDLE_NAME.replace(' ', '\ ')))
55 os.system("cp -r %s/%s %s/Resources/quassel.iconset/" % (SOURCE_DIR, iconset, CONTENTS_DIR.replace(' ', '\ ')))
58 def createPlist(bundleName, bundleVersion):
59 templateFile = file(SOURCE_DIR + "/scripts/build/Info.plist", 'r')
60 template = templateFile.read()
63 plistFile = file(CONTENTS_DIR + "Info.plist", 'w')
64 plistFile.write(template % {"BUNDLE_NAME": bundleName,
65 "ICON_FILE": "quassel.icns",
66 "BUNDLE_VERSION": bundleVersion})
70 os.system("iconutil -c icns %s/Resources/quassel.iconset" % CONTENTS_DIR.replace(' ', '\ '))
71 os.system("rm -R %s/Resources/quassel.iconset" % CONTENTS_DIR.replace(' ', '\ '))
73 if __name__ == "__main__":
75 createPlist(BUNDLE_NAME, BUNDLE_VERSION)
76 copyFiles(EXE_NAME, ICONSET_FOLDER)