From 483e3f1d3997d81e9db20813f23cebbbfec8d696 Mon Sep 17 00:00:00 2001 From: John Lancaster <32917998+jsl12@users.noreply.github.com> Date: Sun, 16 Jun 2024 00:05:05 -0500 Subject: [PATCH] simplified --- install_service.py | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/install_service.py b/install_service.py index 1ce0104..ac010d1 100755 --- a/install_service.py +++ b/install_service.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3 +#!/usr/bin/env python import subprocess from pathlib import Path @@ -21,34 +21,32 @@ def create_symlink(source, target): print(f'Error creating symlink: [bold red]{e}[/]') -def run_command(command): - try: - subprocess.run(command, check=True, shell=True) - except subprocess.CalledProcessError as e: - print(f'Error running command: {command}\n{e}') - - def main(): repo_dir = Path(__file__).resolve().parent systemd_dir = Path('/etc/systemd/system') # Define the source and target paths - socket_file = 'example.socket' - service_file = 'example.service' + name = 'example' + socket_file = f'{name}.socket' + service_file = f'{name}.service' # Create symlinks create_symlink(repo_dir / socket_file, systemd_dir / socket_file) create_symlink(repo_dir / service_file, systemd_dir / service_file) # Reload systemd, start and enable the socket - run_command('sudo systemctl daemon-reload') - print('Reloaded systemd services') + try: + cmd_kwargs = dict(check=True, text=True, capture_output=True) + subprocess.run(['sudo', 'systemctl', 'daemon-reload'], **cmd_kwargs) + print('Reloaded systemd services') - run_command('sudo systemctl start example.socket') - print(f'Started [blue]{socket_file}[/]') + subprocess.run(['sudo', 'systemctl', 'start', socket_file], **cmd_kwargs) + print(f'Started [blue]{socket_file}[/]') - run_command('sudo systemctl enable example.socket') - print(f'Enabled [blue]{socket_file}[/] to start at boot') + subprocess.run(['sudo', 'systemctl', 'enable', socket_file], **cmd_kwargs) + print(f'Enabled [blue]{socket_file}[/] to start at boot') + except subprocess.CalledProcessError as e: + print('Error:', e.stderr) if __name__ == '__main__':