revise python command line

This commit is contained in:
Gregory Gauthier 2026-02-06 09:29:52 +00:00
parent d7f68561a8
commit 2a13be848f

View File

@ -97,15 +97,58 @@ def submit_jcl(job, mvshost="oldcomputernerd.com"):
return 1 return 1
if __name__ == "__main__": if __name__ == "__main__":
if len(sys.argv) < 5: if len(sys.argv) < 2:
print("Usage: mvs_job.py <local_source_file> <dataset> <member> <job_name> [mvshost]") print("Usage: mvs_job.py <local_source_file> [destination_pds] [mvshost]")
print()
print("Arguments:")
print(" local_source_file - Path to source file (required)")
print(" destination_pds - PDS destination as DATASET(MEMBER) (optional)")
print(" Default: @05054.C90.SOURCE(basename)")
print(" mvshost - MVS host (optional, default: oldcomputernerd.com)")
print()
print("Examples:")
print(" mvs_job.py src/sieve11.c")
print(" mvs_job.py src/sieve11.c '@05054.C90.SOURCE(SIEVE11)'")
print(" mvs_job.py src/hello.c '@05054.C90.SOURCE(HELLO)' mainframe.example.com")
print()
print("Notes:")
print(" - JCL file is assumed to be jcl/<basename>.jcl")
print(" - Member name defaults to source filename without extension")
sys.exit(1) sys.exit(1)
local_file = sys.argv[1] local_file = sys.argv[1]
dataset_name = sys.argv[2]
member_name = sys.argv[3] # Extract base name without extension for defaults
job = sys.argv[4] basename = os.path.splitext(os.path.basename(local_file))[0].upper()
mvshost = sys.argv[5] if len(sys.argv) > 5 else MVSHOST valid_host_source_pds_suffixes = ['C', 'ALG', 'ASM', 'BAS', 'COB', 'PAS', 'PL360']
default_suffix = valid_host_source_pds_suffixes[0]
# Parse destination PDS (optional second argument)
if len(sys.argv) > 2 and sys.argv[2]:
destination = sys.argv[2]
# Parse PDS syntax: DATASET(MEMBER)
if '(' in destination and destination.endswith(')'):
dataset_name = destination[:destination.index('(')]
member_name = destination[destination.index('(')+1:-1]
else:
print(f"Error: Invalid PDS syntax '{destination}'. Use format: DATASET(MEMBER)")
sys.exit(1)
else:
# Default destination
dataset_name = f"@05054.SRCLIB.{default_suffix}"
member_name = basename
# JCL job name defaults to basename
job = basename.lower()
# Optional host override
mvshost = sys.argv[3] if len(sys.argv) > 3 else MVSHOST
print(f"Source: {local_file}")
print(f"Destination: {dataset_name}({member_name})")
print(f"JCL: jcl/{job}.jcl")
print(f"Host: {mvshost}")
print()
# Step 1: Upload source to PDS # Step 1: Upload source to PDS
if upload_source(local_file, dataset_name, member_name, mvshost) != 0: if upload_source(local_file, dataset_name, member_name, mvshost) != 0: