mumble/scripts/generate-qrc.py
Stefan Hacker 65c1affbdc Add generate-qrc.py script as a rcc -project replacement
One can use rcc -project to emit .qrc files for the contents of
a directory. However this functionality seems to be woefully incomplete
to the point of being broken.

This small python script offers the same functionality with more
options to customize and configure behaviour. This includes custom
prefixes, better handling of qrc file path vs. alias and exclusions.
2015-07-12 01:15:33 +02:00

47 lines
1.2 KiB
Python
Executable File

#!/usr/bin/env python
#
# Improved version of rcc --project
#
import sys
import os
import re
import argparse
parser = argparse.ArgumentParser(description='Improved version of rcc --project')
parser.add_argument('theme')
parser.add_argument('--cwd', default='.')
parser.add_argument('--prefix', default='')
parser.add_argument('--output', '-o')
parser.add_argument('--include', '-i', default='.*', help='Default inclusion regex')
parser.add_argument('--exclude', '-e', default='a^', help='Default exclusion regex')
args = parser.parse_args()
out = sys.stdout
if args.output:
out = open(args.output, 'w')
print>>out, '<!DOCTYPE RCC>'
print>>out, '<RCC version=\"1.0\">'
print>>out, '<qresource prefix="%s">' % args.prefix
include = re.compile(args.include)
exclude = re.compile(args.exclude)
os.chdir(args.cwd)
for (dirpath, dirnames, filenames) in os.walk(args.theme):
for f in filenames:
path = os.path.join(dirpath, f)
relpath = os.path.relpath(path, args.theme)
if not include.search(relpath):
continue
if exclude.search(relpath):
continue
print>>out, ' <file alias="%s">%s</file>' % (relpath, path)
print>>out, '</qresource>'
print>>out, '</RCC>'