mirror of
				https://github.com/kastdeur/pipeband-music.git
				synced 2025-10-31 02:16:34 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
	
		
			1.6 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,help="Copy files instead of just linkingi")
 | |
| parser.add_argument('-t',dest='title',help="Title for the set")
 | |
| parser.add_argument('scores',nargs='+')
 | |
| 
 | |
| args = parser.parse_args()
 | |
| 
 | |
| if os.path.isdir(args.setfile):
 | |
| 	print("First argument cannot be a directory ")
 | |
| 	sys.exit()
 | |
| 
 | |
| if os.path.dirname(args.setfile):
 | |
|     os.makedirs(os.path.dirname(args.setfile), exist_ok=True)
 | |
| 
 | |
| if args.setfile == '--':
 | |
|     fprint = print  
 | |
| else:
 | |
|     fpoint = codecs.open(args.setfile, 'w+', 'utf8')
 | |
|     fprint = fpoint.write
 | |
| 
 | |
| fprint(u'\ufeff')
 | |
| fprint('\\version \"2.18.2\"\n\n')
 | |
| 
 | |
| if args.title:
 | |
|     fprint(
 | |
| "\header {"+
 | |
|     "title = \"" + args.title + "\""+
 | |
| "}\n")
 | |
| 
 | |
| fprint(
 | |
| "\paper {"+
 | |
|     "#(define page-breaking ly:minimal-breaking)" +
 | |
| "}\n")
 | |
| 
 | |
| fprint("\n\n%Scores\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+"\""
 | |
| 			fprint(line.replace('\r', '')+'\n')
 | |
| 	else:
 | |
| 		fprint('\\include \"' + os.path.join( os.path.abspath( os.curdir ) ,f) + '\"\n')
 | |
| 
 | |
| fpoint.close()
 |