gajim-plural/mac/makeicns.py

37 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python3
import os
import shutil
from argparse import ArgumentParser
from subprocess import run
ICON_SVG = 'gajim/data/icons/hicolor/scalable/apps/org.gajim.Gajim.svg'
def create_icns(icon_path):
tmpdir = 'Gajim.iconset'
if os.path.isdir(tmpdir):
shutil.rmtree(tmpdir)
os.mkdir(tmpdir)
for size_pt in [16, 32, 128, 256, 512]:
for scale in [1, 2]:
size_px = scale * size_pt
scale_txt = '@{}'.format(scale) if scale != 1 else ''
png_fn = 'icon_{}x{}{}.png'.format(size_pt, size_pt, scale_txt)
png_path = os.path.join(tmpdir, png_fn)
run(['inkscape', '-z', '-e', png_path,
'-w', str(size_px), '-h', str(size_px), '-y', '0',
ICON_SVG])
run(['iconutil', '-c', 'icns', '-o', icon_path, tmpdir])
shutil.rmtree(tmpdir)
if __name__ == '__main__':
parser = ArgumentParser(description='Create a macOS .icns icon. '
'Requires Inkscape and iconutil (macOS).')
parser.add_argument('output', help='bundle output location')
args = parser.parse_args()
create_icns(args.output)