mirror of
https://github.com/kastdeur/pipeband-music.git
synced 2024-12-23 00:33:31 +01:00
d8ef790ade
Small update to make_set script
45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
#!/bin/python3
|
|
## Script to easily generate a set (concatenated scores)
|
|
|
|
import codecs, os, sys
|
|
from argparse import ArgumentParser
|
|
|
|
parser = ArgumentParser(__file__)
|
|
parser.add_argument('setfile')
|
|
parser.add_argument('-c',dest='copy',action='store_true',default=False)
|
|
parser.add_argument('scores',nargs='+')
|
|
|
|
args = parser.parse_args()
|
|
|
|
if os.path.isdir(args.setfile):
|
|
print("First argument cannot be a directory ")
|
|
sys.exit()
|
|
|
|
os.makedirs(os.path.dirname(args.setfile), exist_ok=True)
|
|
fpoint = codecs.open(args.setfile, 'w+', 'utf8')
|
|
fpoint.write(u'\ufeff')
|
|
fpoint.write('\\version \"2.18.2\"\n\n')
|
|
|
|
for f in args.scores:
|
|
|
|
if not os.path.exists(f):
|
|
continue
|
|
|
|
if args.copy is True:
|
|
text = codecs.open(f, 'r', 'utf8').read()
|
|
if text.startswith(u'\ufeff'): text = text[1:]
|
|
text = text.split(u'\n')
|
|
|
|
for line in text:
|
|
if line.startswith(u'\\include'):
|
|
incline = line.replace('\\include', '').strip('"\' ')
|
|
|
|
if not incline.startswith('\\'): #already absolute
|
|
incline = os.path.join(os.path.abspath(os.path.dirname(f)), incline)
|
|
|
|
line = "\\include \""+incline+"\""
|
|
fpoint.write(line.replace('\r', '')+'\n')
|
|
else:
|
|
fpoint.write('\\include \"' + os.path.join( os.path.abspath( os.curdir ) ,f) + '\"\n')
|
|
|
|
fpoint.close()
|