Spaces:
Sleeping
Sleeping
File size: 2,021 Bytes
e8e0706 bc759ab e8e0706 bc759ab e8e0706 bc759ab e8e0706 bc759ab e8e0706 bc759ab e8e0706 bc759ab e8e0706 bc759ab e8e0706 bc759ab e8e0706 bc759ab e8e0706 bc759ab |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
import gradio as gr
import subprocess
# Run setup.sh once at startup
def run_setup():
result = subprocess.run(
["sh", "scripts/setup.sh"],
capture_output=True,
text=True
)
return result.stdout + "\n" + result.stderr
# Run setup to compile COBOL files
print("π Running setup...")
setup_output = run_setup()
print(setup_output)
# Helper function to run COBOL binaries
def run_cobol_binary(binary_name, input_data=None):
try:
if input_data:
result = subprocess.run(
[f"./cobol/{binary_name}"],
input=input_data,
capture_output=True,
text=True,
timeout=10
)
else:
result = subprocess.run(
[f"./cobol/{binary_name}"],
capture_output=True,
text=True,
timeout=10
)
return result.stdout or result.stderr
except Exception as e:
return str(e)
# --- Account Balance ---
def get_balance(account_number):
input_str = f"{account_number}\n"
return run_cobol_binary("account", input_str)
# --- Loan Status ---
def check_loan_status(account_number):
input_str = f"{account_number}\n"
return run_cobol_binary("loan", input_str)
# --- Gradio UI ---
with gr.Blocks(title="COBOL Bank Demo") as demo:
gr.Markdown("# π° COBOL Banking System\nRun real COBOL programs in your browser!")
with gr.Tab("Account Balance"):
acc_input = gr.Number(label="Enter Account Number")
acc_output = gr.Textbox(label="Balance Info")
acc_btn = gr.Button("Check Balance")
acc_btn.click(fn=get_balance, inputs=acc_input, outputs=acc_output)
with gr.Tab("Loan Status"):
loan_input = gr.Number(label="Enter Account Number")
loan_output = gr.Textbox(label="Loan Info")
loan_btn = gr.Button("Check Loan")
loan_btn.click(fn=check_loan_status, inputs=loan_input, outputs=loan_output)
demo.launch() |