72 lines
1.7 KiB
Python
72 lines
1.7 KiB
Python
import sys
|
|
import os
|
|
|
|
from data import ENV
|
|
|
|
def eprint(*args):
|
|
print(*args, file=sys.stderr)
|
|
|
|
def solve_or_escape(param):
|
|
if not param[0] == '$':
|
|
return param
|
|
if param[1] == '$':
|
|
return param[1:]
|
|
return ENV[param[1:]]
|
|
|
|
def l_map(x,y): return list(map(x,y))
|
|
|
|
def cp_file(command):
|
|
dst = os.path.normpath(f"{ENV['dst']}/{command[0]}")
|
|
src = os.path.normpath(f"{ENV['src']}/{command[1]}")
|
|
eprint(f'Copying ... "{src}" to "{dst}"')
|
|
shutil.copy(src, dst)
|
|
|
|
import shutil
|
|
def file_import(commands):
|
|
try:
|
|
l_map(cp_file, commands)
|
|
except FileNotFoundError as e:
|
|
eprint('Error:', e)
|
|
|
|
def main():
|
|
|
|
if "-h" in sys.argv or "--help" in sys.argv:
|
|
eprint(); eprint(' ', sys.argv[0])
|
|
eprint(); eprint(' -', ' '.join(ENV['usage']))
|
|
eprint(); [eprint(' ', x) for x in ENV['help']]
|
|
eprint()
|
|
exit(0)
|
|
|
|
if len(sys.argv) < len(ENV['usage']):
|
|
eprint('Usage:', ' '.join(ENV['usage']))
|
|
exit(1)
|
|
|
|
if len(sys.argv) == len(ENV['usage']):
|
|
ENV['dst'] = os.path.normpath(sys.argv[-1])
|
|
|
|
ENV['src'] = os.path.normpath(sys.argv[-2])
|
|
ENV['mus_db'] = os.path.normpath(sys.argv[-3])
|
|
|
|
dst_dir = ENV['dst']
|
|
src_dir = ENV['src']
|
|
mus_db = ENV['mus_db']
|
|
|
|
if not os.path.isfile(mus_db):
|
|
eprint(f"{mus_db}: Not a file")
|
|
if not os.path.isdir(src_dir):
|
|
eprint(f"{src_dir}: Not a directory")
|
|
if not os.path.isdir(dst_dir):
|
|
eprint(f"{dst_dir}: Not a directory")
|
|
|
|
import csv
|
|
|
|
config = []
|
|
|
|
with open(mus_db, newline='') as csvfile:
|
|
config = [row for row in csv.reader(csvfile, delimiter=' ')]
|
|
|
|
file_import(config)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|