File: macosx_makebundle.py

package info (click to toggle)
quassel 1%3A0.13.1-1%2Bdeb10u2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 24,888 kB
  • sloc: cpp: 66,948; perl: 15,837; ansic: 4,418; sql: 1,225; sh: 328; xml: 263; python: 224; makefile: 25
file content (77 lines) | stat: -rwxr-xr-x 2,624 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/usr/bin/python
# -*- coding: iso-8859-1 -*-

################################################################################
#                                                                              #
# 2008 June 27th by Marcus 'EgS' Eggenberger <egs@quassel-irc.org>             #
#                                                                              #
# The author disclaims copyright to this source code.                          #
# This Python Script is in the PUBLIC DOMAIN.                                  #
#                                                                              #
################################################################################

# ==============================
#  Imports
# ==============================
import os
import os.path
import sys
import commands

# ==============================
#  Constants
# ==============================
if len(sys.argv) < 2:
    sys.exit(1)

SOURCE_DIR = sys.argv[1]

if len(sys.argv) < 4:
    BUNDLE_NAME = "Quassel Client"
    EXE_NAME = "quasselclient"
else:
    EXE_NAME = sys.argv[3]
    BUNDLE_NAME = sys.argv[2]

# make the dir of the exe the target dir
if(os.path.dirname(EXE_NAME)):
    CONTENTS_DIR = os.path.dirname(EXE_NAME) + "/"
CONTENTS_DIR += BUNDLE_NAME + ".app/Contents/"

BUNDLE_VERSION = commands.getoutput("git --git-dir=" + SOURCE_DIR + "/.git/ describe")
ICONSET_FOLDER = "pics/iconset/"


def createBundle():
    try:
        os.makedirs(CONTENTS_DIR + "MacOS")
        os.makedirs(CONTENTS_DIR + "Resources")
    except:
        pass


def copyFiles(exeFile, iconset):
    os.system("cp %s %sMacOs/%s" % (exeFile, CONTENTS_DIR.replace(' ', '\ '), BUNDLE_NAME.replace(' ', '\ ')))
    os.system("cp -r %s/%s %s/Resources/quassel.iconset/" % (SOURCE_DIR, iconset, CONTENTS_DIR.replace(' ', '\ ')))


def createPlist(bundleName, bundleVersion):
    templateFile = file(SOURCE_DIR + "/scripts/build/Info.plist", 'r')
    template = templateFile.read()
    templateFile.close()

    plistFile = file(CONTENTS_DIR + "Info.plist", 'w')
    plistFile.write(template % {"BUNDLE_NAME": bundleName,
                                "ICON_FILE": "quassel.icns",
                                "BUNDLE_VERSION": bundleVersion})
    plistFile.close()

def convertIconset():
    os.system("iconutil -c icns %s/Resources/quassel.iconset" % CONTENTS_DIR.replace(' ', '\ '))
    os.system("rm -R %s/Resources/quassel.iconset" % CONTENTS_DIR.replace(' ', '\ '))

if __name__ == "__main__":
    createBundle()
    createPlist(BUNDLE_NAME, BUNDLE_VERSION)
    copyFiles(EXE_NAME, ICONSET_FOLDER)
    convertIconset()