revise python command line
This commit is contained in:
parent
d7f68561a8
commit
2a13be848f
55
mvs_job.py
55
mvs_job.py
@ -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:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user