FreedomBox/actions/syncthing
Sunil Mohan Adapa 2bbcd2d869
infinoted, syncthing: Fix minor typo in a comment
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Joseph Nuthalapati <njoseph@riseup.net>
2020-08-21 22:41:22 +05:30

62 lines
1.6 KiB
Python
Executable File

#!/usr/bin/python3
# SPDX-License-Identifier: AGPL-3.0-or-later
"""
Configuration helper for Syncthing.
"""
import argparse
import grp
import os
import pwd
import shutil
import subprocess
def parse_arguments():
"""Return parsed command line arguments as dictionary."""
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers(dest='subcommand', help='Sub command')
subparsers.add_parser('setup', help='Setup Syncthing')
subparsers.required = True
return parser.parse_args()
def subcommand_setup(_):
"""Actions to be performed before installing Syncthing"""
data_dir = '/var/lib/syncthing'
# Create syncthing group if needed.
try:
grp.getgrnam('syncthing')
except KeyError:
subprocess.run(['addgroup', '--system', 'syncthing'], check=True)
# Create syncthing user if needed.
try:
pwd.getpwnam('syncthing')
except KeyError:
subprocess.run([
'adduser', '--system', '--ingroup', 'syncthing', '--home',
'/var/lib/syncthing', '--gecos',
'Syncthing file synchronization server', 'syncthing'
], check=True)
if not os.path.exists(data_dir):
os.makedirs(data_dir, mode=0o750)
shutil.chown(data_dir, user='syncthing', group='syncthing')
def main():
"""Parse arguments and perform all duties."""
arguments = parse_arguments()
subcommand = arguments.subcommand.replace('-', '_')
subcommand_method = globals()['subcommand_' + subcommand]
subcommand_method(arguments)
if __name__ == '__main__':
main()