| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #!/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 = pwd.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.symlink(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')
-
|