#!/usr/bin/python import sys import pwd import os import json import re import base64 import argparse import subprocess b64id = base64.b64encode(os.urandom(9)) parser = argparse.ArgumentParser() parser.add_argument('src', nargs=1) parser.add_argument('dst', nargs=1) parser.add_argument('-programs', dest='programspath') parser.add_argument('-receivers', dest='receivers', type=int) parser.add_argument('-api-secret', dest='api_secret') parser.add_argument('-box-id', dest='box_id') arg = parser.parse_args() theid = arg.box_id infile = arg.src outfile = arg.dst with open(infile[0], 'rb') as fpin: data = json.loads(fpin.read()) data['device_id'] = theid data['installDir'] = arg.programspath data['receivers_count'] = arg.receivers data['apiSecret'] = arg.api_secret with open(outfile[0], 'w') as fpout: fpout.write(json.dumps(data, indent=4)) print(theid) user = getpwnam('fourier') src_fourier_path = '/media/datadrive/fourier' fourier_path = '/var/fourier' box_path = os.path.join(fourier_path, theid) db_path = os.path.join(box_path, 'files.db') if not os.path.isdir(src_fourier_path): os.mkdir(src_fourier_path) os.chown(src_fourier_path, user.pw_uid, user.pw_gid) if not os.path.islink(fourier_path): os.src_fourier_path(src_fourier_path, fourier_path) if not os.path.isdir(box_path): print('** Creating Box ID folder') os.mkdir(box_path) os.chown(box_path, user.pw_uid, user.pw_gid) if not os.path.isfile(db_path): print('** Preparing local database') subprocess.call(['fourier', 'db', 'setup']) print('** Applying migrations') subprocess.call(['fourier', 'db', 'migrate']) print('** Creating database')