|
import os |
|
import shutil |
|
import gradio as gr |
|
|
|
def process(phase, target_dir, template_dir, object_file): |
|
try: |
|
if not os.path.isdir(target_dir): |
|
return "Error: Target directory does not exist." |
|
if not os.path.isdir(template_dir): |
|
return "Error: Template directory does not exist." |
|
|
|
|
|
object_names = object_file.read().decode('utf-8').splitlines() |
|
|
|
for object_name in object_names: |
|
if not object_name.strip(): |
|
continue |
|
|
|
object_dir = os.path.join(target_dir, f"{phase}_{object_name}") |
|
os.makedirs(object_dir, exist_ok=True) |
|
|
|
|
|
for filename in os.listdir(template_dir): |
|
template_file = os.path.join(template_dir, filename) |
|
if os.path.isfile(template_file): |
|
|
|
name, ext = os.path.splitext(filename) |
|
|
|
new_filename = f"{name}_{object_name}{ext}" |
|
new_file = os.path.join(object_dir, new_filename) |
|
shutil.copy(template_file, new_file) |
|
return f"Created directories and files for {len(object_names)} objects." |
|
except Exception as e: |
|
return f"Error: {str(e)}" |
|
|
|
phase_dropdown = gr.Dropdown(choices=['FAT', 'iFAT', 'iSAT'], label='Select Phase') |
|
|
|
target_dir_input = gr.Textbox(label='Target Directory Path', placeholder='Enter target directory path (must exist)') |
|
|
|
template_dir_input = gr.Textbox(label='Template Directory Path', placeholder='Enter template directory path (must exist)') |
|
|
|
object_file_input = gr.File(label='Object Names File (txt)', file_types=['.txt']) |
|
|
|
output_text = gr.Textbox(label='Output') |
|
|
|
gr.Interface( |
|
fn=process, |
|
inputs=[phase_dropdown, target_dir_input, template_dir_input, object_file_input], |
|
outputs=output_text, |
|
title='Directory and File Creator', |
|
description='Enter the required information and upload the object names txt file. Ensure the directory paths are valid.' |
|
).launch() |
|
|