Skip to content

Commit

Permalink
Small update
Browse files Browse the repository at this point in the history
  • Loading branch information
KazukiPrzyborowski committed Dec 23, 2024
1 parent 15649d3 commit b5a4944
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 45 deletions.
14 changes: 8 additions & 6 deletions altcatfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ def main():
parser = argparse.ArgumentParser(
description="Combined utility for CatFile operations with dynamic and static modes."
)
parser.add_argument("-i", "--input", required=True, help="Input file(s) for processing.")
parser.add_argument("-i", "--input", nargs="+", required=True, help="Input file(s) for processing.")
parser.add_argument("-o", "--output", help="Output file name.")
parser.add_argument("-m", "--mode", choices=["dynamic", "static"], default="static",
help="Choose mode: 'dynamic' (runtime arguments) or 'static' (config-based). Default: static.")
Expand Down Expand Up @@ -117,21 +117,23 @@ def main():
'format_ver': format_version
}

input_file = args.input[0]

# Determine operation
if args.create:
pycatfile.PackArchiveFile(args.input, args.output, args.verbose, args.compression,
args.level, False, args.checksum, [], format_dict, args.verbose, False)
elif args.repack:
pycatfile.RePackArchiveFile(
args.input, args.output, args.compression, args.level, args.checksum, args.verbose)
input_file, args.output, args.compression, args.level, args.checksum, args.verbose)
elif args.extract:
pycatfile.UnPackArchiveFile(
args.input, args.output, args.verbose, args.preserve)
input_file, args.output, args.verbose, args.preserve)
elif args.list:
pycatfile.ArchiveFileListFiles(args.input, verbose=args.verbose)
pycatfile.ArchiveFileListFiles(input_file, verbose=args.verbose)
elif args.validate:
is_valid = pycatfile.ArchiveFileValidate(args.input, args.verbose)
result_msg = f"Validation result for {args.input}: {'Valid' if is_valid else 'Invalid'}"
is_valid = pycatfile.ArchiveFileValidate(input_file, args.verbose)
result_msg = "Validation result for {}: {}".format(input_file, 'Valid' if is_valid else 'Invalid')
print(result_msg)
else:
print("No action specified. Use --create, --extract, --list, --repack, or --validate.")
Expand Down
49 changes: 25 additions & 24 deletions catfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ def handler(signum, frame):
version=__program_name__ + " " + __version__)
# Input and output specifications
argparser.add_argument(
"-i", "--input", help="Specify the file(s) to concatenate or the concatenated file to extract.", required=True)
"-i", "--input", nargs="+", help="Specify the file(s) to concatenate or the concatenated file to extract.", required=True)
argparser.add_argument("-o", "--output", default=None,
help="Specify the name for the extracted or output concatenated files.")
# Operations
Expand Down Expand Up @@ -161,93 +161,94 @@ def handler(signum, frame):
actions = ['create', 'extract', 'list', 'repack', 'validate']
active_action = next(
(action for action in actions if getattr(getargs, action)), None)
input_file = getargs.input[0]

# Execute the appropriate functions based on determined actions and arguments
if active_action:
if active_action == 'create':
if getargs.convert:
checkcompressfile = pycatfile.CheckCompressionSubType(
getargs.input, fnamedict, True)
input_file, fnamedict, True)
if(checkcompressfile == "catfile"):
tmpout = pycatfile.RePackArchiveFile(getargs.input, getargs.output, getargs.compression, getargs.wholefile,
tmpout = pycatfile.RePackArchiveFile(input_file, getargs.output, getargs.compression, getargs.wholefile,
getargs.level, False, 0, 0, getargs.checksum, getargs.skipchecksum, [], fnamedict, getargs.verbose, False)
else:
tmpout = pycatfile.PackArchiveFileFromInFile(
getargs.input, getargs.output, getargs.compression, getargs.wholefile, getargs.level, getargs.checksum, [], fnamedict, getargs.verbose, False)
if(not tmpout):
sys.exit(1)
else:
pycatfile.PackArchiveFile(getargs.input, getargs.output, getargs.text, getargs.compression,
pycatfile.PackArchiveFile(input_file, getargs.output, getargs.text, getargs.compression,
getargs.wholefile, getargs.level, False, getargs.checksum, [], fnamedict, getargs.verbose, False)
elif active_action == 'repack':
if getargs.convert:
checkcompressfile = pycatfile.CheckCompressionSubType(
getargs.input, fnamedict, True)
input_file, fnamedict, True)
if(checkcompressfile == "catfile"):
pycatfile.RePackArchiveFile(getargs.input, getargs.output, getargs.compression, getargs.wholefile, getargs.level,
pycatfile.RePackArchiveFile(input_file, getargs.output, getargs.compression, getargs.wholefile, getargs.level,
False, 0, 0, getargs.checksum, getargs.skipchecksum, [], fnamedict, getargs.verbose, False)
else:
pycatfile.PackArchiveFileFromInFile(getargs.input, getargs.output, getargs.compression,
pycatfile.PackArchiveFileFromInFile(input_file, getargs.output, getargs.compression,
getargs.wholefile, getargs.level, getargs.checksum, [], fnamedict, getargs.verbose, False)
if(not tmpout):
sys.exit(1)
else:
pycatfile.RePackArchiveFile(getargs.input, getargs.output, getargs.compression, getargs.wholefile, getargs.level,
pycatfile.RePackArchiveFile(input_file, getargs.output, getargs.compression, getargs.wholefile, getargs.level,
False, 0, 0, getargs.checksum, getargs.skipchecksum, [], fnamedict, getargs.verbose, False)
elif active_action == 'extract':
if getargs.convert:
checkcompressfile = pycatfile.CheckCompressionSubType(
getargs.input, fnamedict, True)
input_file, fnamedict, True)
tempout = BytesIO()
if(checkcompressfile == "catfile"):
tmpout = pycatfile.RePackArchiveFile(getargs.input, tempout, getargs.compression, getargs.wholefile,
tmpout = pycatfile.RePackArchiveFile(input_file, tempout, getargs.compression, getargs.wholefile,
getargs.level, False, 0, 0, getargs.checksum, getargs.skipchecksum, [], fnamedict, False, False)
else:
tmpout = pycatfile.PackArchiveFileFromInFile(
getargs.input, tempout, getargs.compression, getargs.wholefile, getargs.level, getargs.checksum, [], fnamedict, False, False)
input_file, tempout, getargs.compression, getargs.wholefile, getargs.level, getargs.checksum, [], fnamedict, False, False)
if(not tmpout):
sys.exit(1)
getargs.input = tempout
pycatfile.UnPackArchiveFile(getargs.input, getargs.output, False, 0, 0, getargs.skipchecksum,
input_file = tempout
pycatfile.UnPackArchiveFile(input_file, getargs.output, False, 0, 0, getargs.skipchecksum,
fnamedict, getargs.verbose, getargs.preserve, getargs.preserve, False)
elif active_action == 'list':
if getargs.convert:
checkcompressfile = pycatfile.CheckCompressionSubType(
getargs.input, fnamedict, True)
input_file, fnamedict, True)
if(checkcompressfile == "catfile"):
tmpout = pycatfile.ArchiveFileListFiles(
getargs.input, 0, 0, getargs.skipchecksum, fnamedict, getargs.verbose, False)
input_file, 0, 0, getargs.skipchecksum, fnamedict, getargs.verbose, False)
else:
tmpout = pycatfile.InFileListFiles(
getargs.input, getargs.verbose, fnamedict, False)
input_file, getargs.verbose, fnamedict, False)
if(not tmpout):
sys.exit(1)
else:
pycatfile.ArchiveFileListFiles(
getargs.input, 0, 0, getargs.skipchecksum, fnamedict, getargs.verbose, False)
input_file, 0, 0, getargs.skipchecksum, fnamedict, getargs.verbose, False)
elif active_action == 'validate':
if getargs.convert:
checkcompressfile = pycatfile.CheckCompressionSubType(
getargs.input, fnamedict, True)
input_file, fnamedict, True)
tempout = BytesIO()
if(checkcompressfile == "catfile"):
tmpout = pycatfile.RePackArchiveFile(getargs.input, tempout, getargs.compression, getargs.wholefile,
tmpout = pycatfile.RePackArchiveFile(input_file, tempout, getargs.compression, getargs.wholefile,
getargs.level, False, 0, 0, getargs.checksum, getargs.skipchecksum, [], fnamedict, False, False)
else:
tmpout = pycatfile.PackArchiveFileFromInFile(
getargs.input, tempout, getargs.compression, getargs.wholefile, getargs.level, getargs.checksum, [], fnamedict, False, False)
getargs.input = tempout
input_file, tempout, getargs.compression, getargs.wholefile, getargs.level, getargs.checksum, [], fnamedict, False, False)
input_file = tempout
if(not tmpout):
sys.exit(1)
fvalid = pycatfile.ArchiveFileValidate(
getargs.input, fnamedict, getargs.verbose, False)
input_file, fnamedict, getargs.verbose, False)
if(not getargs.verbose):
import sys
import logging
logging.basicConfig(format="%(message)s",
stream=sys.stdout, level=logging.DEBUG)
if(fvalid):
pycatfile.VerbosePrintOut("File is valid: \n" + str(getargs.input))
pycatfile.VerbosePrintOut("File is valid: \n" + str(input_file))
else:
pycatfile.VerbosePrintOut(
"File is invalid: \n" + str(getargs.input))
"File is invalid: \n" + str(input_file))
30 changes: 15 additions & 15 deletions neocatfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
description="Manipulates concatenated files for various operations like creation, extraction, and validation.")
argparser.add_argument("-V", "--version", action="version", version="{0} {1}".format(
__program_name__, __version__), help="Displays the program's version.")
argparser.add_argument("-i", "--input", required=True,
argparser.add_argument("-i", "--input", nargs="+", required=True,
help="Specifies input file(s) for processing.")
argparser.add_argument(
"-o", "--output", help="Specifies the output file name.")
Expand Down Expand Up @@ -94,43 +94,43 @@
primary_action = 'list'
elif args.validate:
primary_action = 'validate'

input_file = args.input[0]
# Functionality mappings
if primary_action == 'create':
if args.convert == 'tar':
pycatfile.PackArchiveFileFromTarFile(args.input, args.output, args.compression, args.level, args.checksum, [
pycatfile.PackArchiveFileFromTarFile(input_file, args.output, args.compression, args.level, args.checksum, [
], pycatfile.__file_format_list__, args.verbose, False)
elif args.convert == 'zip':
pycatfile.PackArchiveFileFromZipFile(args.input, args.output, args.compression, args.level, args.checksum, [
pycatfile.PackArchiveFileFromZipFile(input_file, args.output, args.compression, args.level, args.checksum, [
], pycatfile.__file_format_list__, args.verbose, False)
elif py7zr_support and args.convert == '7zip':
pycatfile.PackArchiveFileFromSevenZipFile(args.input, args.output, args.compression, args.level, args.checksum, [
pycatfile.PackArchiveFileFromSevenZipFile(input_file, args.output, args.compression, args.level, args.checksum, [
], pycatfile.__file_format_list__, args.verbose, False)
elif rarfile_support and args.convert == 'rar':
pycatfile.PackArchiveFileFromRarFile(args.input, args.output, args.compression, args.level, args.checksum, [
pycatfile.PackArchiveFileFromRarFile(input_file, args.output, args.compression, args.level, args.checksum, [
], pycatfile.__file_format_list__, args.verbose, False)
else:
pycatfile.PackArchiveFile(args.input, args.output, args.verbose, args.compression, args.level,
False, args.checksum, [], pycatfile.__file_format_list__, args.verbose, False)
elif primary_action == 'repack':
pycatfile.RePackArchiveFile(
args.input, args.output, args.compression, args.level, args.checksum, args.verbose)
input_file, args.output, args.compression, args.level, args.checksum, args.verbose)
elif primary_action == 'extract':
pycatfile.UnPackArchiveFile(
args.input, args.output, args.verbose, args.preserve)
input_file, args.output, args.verbose, args.preserve)
elif primary_action == 'list':
if args.convert == 'tar':
pycatfile.TarFileListFiles(args.input, verbose=args.verbose)
pycatfile.TarFileListFiles(input_file, verbose=args.verbose)
elif args.convert == 'zip':
pycatfile.ZipFileListFiles(args.input, verbose=args.verbose)
pycatfile.ZipFileListFiles(input_file, verbose=args.verbose)
elif args.convert == '7zip':
pycatfile.SevenZipFileListFiles(args.input, verbose=args.verbose)
pycatfile.SevenZipFileListFiles(input_file, verbose=args.verbose)
elif rarfile_support and args.convert == 'rar':
pycatfile.RarFileListFiles(args.input, verbose=args.verbose)
pycatfile.RarFileListFiles(input_file, verbose=args.verbose)
else:
pycatfile.ArchiveFileListFiles(args.input, verbose=args.verbose)
pycatfile.ArchiveFileListFiles(input_file, verbose=args.verbose)
elif primary_action == 'validate':
is_valid = pycatfile.ArchiveFileValidate(args.input, args.verbose)
is_valid = pycatfile.ArchiveFileValidate(input_file, args.verbose)
result_msg = "Validation result for {0}: {1}".format(
args.input, 'Valid' if is_valid else 'Invalid')
input_file, 'Valid' if is_valid else 'Invalid')
print(result_msg)

0 comments on commit b5a4944

Please sign in to comment.