mirror of
https://github.com/iKarith/cppo-ng.git
synced 2024-06-06 09:29:29 +00:00
Finish removing arg parsing from legacy
You now simply stuff g with the appropriate options and run the thing. You could even modify the function to take those things as arguments now, but I didn't do that for now.
This commit is contained in:
parent
e266f0070c
commit
b543ea2f2d
|
@ -1029,7 +1029,7 @@ def hexdump(
|
||||||
return '\n'.join(out)
|
return '\n'.join(out)
|
||||||
|
|
||||||
|
|
||||||
def run_cppo(args: list):
|
def run_cppo():
|
||||||
try:
|
try:
|
||||||
disk = Disk(g.image_file)
|
disk = Disk(g.image_file)
|
||||||
except IOError as e:
|
except IOError as e:
|
||||||
|
@ -1054,14 +1054,12 @@ def run_cppo(args: list):
|
||||||
|
|
||||||
if g.src_shk:
|
if g.src_shk:
|
||||||
g.prodos_names = False
|
g.prodos_names = False
|
||||||
if not g.catalog_only:
|
|
||||||
targetDir = (args[3] if g.extract_file else args[2])
|
|
||||||
unshkdir = ('/tmp' + "/cppo-" + str(uuid.uuid4()))
|
unshkdir = ('/tmp' + "/cppo-" + str(uuid.uuid4()))
|
||||||
makedirs(unshkdir)
|
makedirs(unshkdir)
|
||||||
result = os.system(
|
result = os.system(
|
||||||
"/bin/bash -c 'cd " + unshkdir + "; "
|
"/bin/bash -c 'cd " + unshkdir + "; "
|
||||||
+ "result=$(nulib2 -xse " + os.path.abspath(disk.pathname)
|
+ "result=$(nulib2 -xse " + os.path.abspath(disk.pathname)
|
||||||
+ ((" " + args[2].replace('/', ':'))
|
+ ((" " + g.extract_file.replace('/', ':'))
|
||||||
if g.extract_file else "") + " 2> /dev/null); "
|
if g.extract_file else "") + " 2> /dev/null); "
|
||||||
+ "if [[ $result == \"Failed.\" ]]; then exit 3; "
|
+ "if [[ $result == \"Failed.\" ]]; then exit 3; "
|
||||||
+ "else if grep -q \"no records match\" <<< \"$result\""
|
+ "else if grep -q \"no records match\" <<< \"$result\""
|
||||||
|
@ -1113,12 +1111,10 @@ def run_cppo(args: list):
|
||||||
subdirList.sort()
|
subdirList.sort()
|
||||||
if not g.catalog_only:
|
if not g.catalog_only:
|
||||||
g.target_dir = (
|
g.target_dir = (
|
||||||
targetDir
|
g.target_dir
|
||||||
+ ("" if curDir else ("/" + volumeName))
|
+ ("" if curDir else ("/" + volumeName))
|
||||||
+ ("/" if dirName.count('/') > 2 else "")
|
+ ("/" if dirName.count('/') > 2 else "")
|
||||||
+ ("/".join(dirName.split('/')[3:]))) # chop tempdir
|
+ ("/".join(dirName.split('/')[3:]))) # chop tempdir
|
||||||
if g.extract_file: # solo item, so don't put it in the tree
|
|
||||||
g.target_dir = targetDir
|
|
||||||
if g.casefold_upper:
|
if g.casefold_upper:
|
||||||
g.target_dir = g.target_dir.upper()
|
g.target_dir = g.target_dir.upper()
|
||||||
g.appledouble_dir = (g.target_dir + "/.AppleDouble")
|
g.appledouble_dir = (g.target_dir + "/.AppleDouble")
|
||||||
|
@ -1203,22 +1199,21 @@ def run_cppo(args: list):
|
||||||
|
|
||||||
# enforce leading slash if ProDOS
|
# enforce leading slash if ProDOS
|
||||||
if (not g.src_shk and not g.dos33 and g.extract_file
|
if (not g.src_shk and not g.dos33 and g.extract_file
|
||||||
and (args[2][0] not in ('/', ':'))):
|
and (g.extract_file[0] not in ('/', ':'))):
|
||||||
log.critical("Cannot extract {} from {}: "
|
log.critical("Cannot extract {} from {}: "
|
||||||
"ProDOS volume name required".format(
|
"ProDOS volume name required".format(
|
||||||
g.extract_file, g.image_file))
|
g.extract_file, g.image_file))
|
||||||
quit_now(2)
|
quit_now(2)
|
||||||
|
|
||||||
if g.dos33:
|
if g.dos33:
|
||||||
disk_name = (disk.diskname
|
disk_name = (disk.diskname if disk.ext in ('.dsk', '.do', '.po')
|
||||||
if disk.ext in ('.dsk', '.do', '.po')
|
|
||||||
else disk.filename)
|
else disk.filename)
|
||||||
if g.prodos_names:
|
if g.prodos_names:
|
||||||
disk_name = toProdosName(disk_name)
|
disk_name = toProdosName(disk_name)
|
||||||
if not g.catalog_only:
|
if not g.catalog_only:
|
||||||
g.target_dir = (args[3]
|
print(g.target_dir)
|
||||||
if g.extract_file
|
g.target_dir = (g.extract_file if g.extract_file
|
||||||
else (args[2] + "/" + disk_name))
|
else (g.target_dir + "/" + disk_name))
|
||||||
g.appledouble_dir = (g.target_dir + "/.AppleDouble")
|
g.appledouble_dir = (g.target_dir + "/.AppleDouble")
|
||||||
makedirs(g.target_dir)
|
makedirs(g.target_dir)
|
||||||
if g.use_appledouble:
|
if g.use_appledouble:
|
||||||
|
@ -1254,7 +1249,7 @@ def run_cppo(args: list):
|
||||||
quit_now(2)
|
quit_now(2)
|
||||||
else:
|
else:
|
||||||
if not g.catalog_only:
|
if not g.catalog_only:
|
||||||
g.target_dir = (args[2] + "/" + getVolumeName().decode())
|
g.target_dir = (g.target_dir + "/" + getVolumeName().decode())
|
||||||
g.appledouble_dir = (g.target_dir + "/.AppleDouble")
|
g.appledouble_dir = (g.target_dir + "/.AppleDouble")
|
||||||
if not os.path.isdir(g.target_dir):
|
if not os.path.isdir(g.target_dir):
|
||||||
makedirs(g.target_dir)
|
makedirs(g.target_dir)
|
||||||
|
|
5
cppo
5
cppo
|
@ -124,11 +124,12 @@ def cppo(args: list):
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
else:
|
else:
|
||||||
if not g.catalog_only:
|
if not g.catalog_only:
|
||||||
if not os.path.isdir(args[2]):
|
g.target_dir = args[2]
|
||||||
|
if not os.path.isdir(g.target_dir):
|
||||||
log.critical("Directory {} not found.".format(g.target_dir))
|
log.critical("Directory {} not found.".format(g.target_dir))
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
|
|
||||||
blocksfree.legacy.run_cppo(args)
|
blocksfree.legacy.run_cppo()
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
cppo(sys.argv)
|
cppo(sys.argv)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user