mirror of
https://codeberg.org/angestoepselt/imagestack.git
synced 2025-05-24 14:46:16 +00:00
46 lines
2.1 KiB
Python
46 lines
2.1 KiB
Python
def convert_to_in_target(bash_script_path, target_username, output_file_path):
|
|
try:
|
|
with open(bash_script_path, 'r') as file:
|
|
lines = file.readlines()
|
|
|
|
in_target_commands = []
|
|
|
|
# Construct the script creation command
|
|
script_creation_cmd = f"d-i preseed/late_command string \\"
|
|
in_target_commands.append(script_creation_cmd)
|
|
|
|
# Convert each script line into an in-target command
|
|
for line in lines:
|
|
# Strip the line to remove leading/trailing whitespace
|
|
stripped_line = line.strip()
|
|
if stripped_line: # Ignore empty lines
|
|
escaped_line = (
|
|
stripped_line.replace('"', '\\"')
|
|
.replace('$', '\\$')
|
|
.replace('(', '\\(')
|
|
.replace(')', '\\)')
|
|
.replace('[', '\\[')
|
|
.replace(']', '\\]')
|
|
.replace('#', '\\#')
|
|
)
|
|
cmd = f"in-target bash -c 'echo \"{escaped_line}\" >> /home/{target_username}/post_hardware.sh' \\"
|
|
in_target_commands.append(cmd)
|
|
|
|
# Add command to make the script executable
|
|
in_target_commands.append(f"in-target chmod +x /home/{target_username}/post_hardware.sh")
|
|
|
|
# Write the generated in-target commands to the output file
|
|
with open(output_file_path, 'w') as output_file:
|
|
for command in in_target_commands:
|
|
output_file.write(command + "\n")
|
|
|
|
print(f"In-target commands successfully written to {output_file_path}")
|
|
|
|
except FileNotFoundError:
|
|
print("The specified bash script file does not exist.")
|
|
|
|
# Usage
|
|
bash_script_path = 'late_command.sh' # Replace with the path to your bash script
|
|
target_username = 'computerspende' # Replace with the target user's username
|
|
output_file_path = 'scripts.txt' # Replace with the desired path for the output file
|
|
convert_to_in_target(bash_script_path, target_username, output_file_path)
|