37 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #! /usr/bin/env python3
 | |
| 
 | |
| import os
 | |
| import sys
 | |
| 
 | |
| from string import Template
 | |
| from subprocess import check_call
 | |
| from subprocess import check_output
 | |
| 
 | |
| EXEC       = 'chutney.py'
 | |
| SERVICE    = 'chutney.service'
 | |
| SYSTEM_DIR = '/etc/systemd/system'
 | |
| 
 | |
| CURRENT_DIR      = os.path.dirname(os.path.realpath(__file__))
 | |
| SERVICE_TEMPLATE = os.path.join(CURRENT_DIR, SERVICE)
 | |
| SERVICE_FILE     = os.path.join(SYSTEM_DIR, SERVICE)
 | |
| PYTHON           = sys.executable
 | |
| EXEC_START       = f'{PYTHON} {EXEC}'
 | |
| USER             = check_output(['logname']).decode('utf-8').strip()
 | |
| 
 | |
| with open(SERVICE_TEMPLATE) as f:
 | |
|     serviceTemplate = Template(f.read())
 | |
| 
 | |
| serviceFile = serviceTemplate.substitute(
 | |
|     workingDirectory=CURRENT_DIR,
 | |
|     execStart=EXEC_START,
 | |
|     user=USER
 | |
| )
 | |
| 
 | |
| with open(SERVICE_FILE, 'w') as f:
 | |
|     f.write(serviceFile)
 | |
| 
 | |
| check_call(['systemctl', 'daemon-reload'])
 | |
| check_call(['systemctl', 'enable', '--no-pager', SERVICE])
 | |
| check_call(['systemctl', 'restart', '--no-pager', SERVICE])
 | |
| check_call(['systemctl', 'status', '--no-pager', SERVICE])
 |