view docker/libervia/scripts/libervia_cont_launch @ 120:37e100fd30ef

docker (liberiva_cont): ownership is fixed on "config" command as "docker cp" use root:root as owner of copied file on container
author Goffi <goffi@goffi.org>
date Wed, 09 Mar 2016 10:11:08 +0100
parents 5d8b9ca2afd4
children
line wrap: on
line source

#!/usr/bin/env python2

# this script check if libervia and admin accounts exist, and create them if necessary
# then it launch libervia
import os, sys, string, random
from sat.plugins import plugin_misc_account as account
from sat.tools import config
from sat_frontends.bridge import DBus

def generate_pwd():
    chars = string.letters + string.digits
    length = 12
    return "".join(random.choice(chars) for _ in range(length))

sat=DBus.DBusBridgeFrontend()
sat.getReady()
admin_email = sat.getConfig(account.CONFIG_SECTION, "admin_email") or account.default_conf["admin_email"]

for profile in ["libervia", "admin"]:
    try:
        sat.getProfileName(profile)
    except Exception as e:
        print "{} profile doesn't exists, creating it".format(profile)
        print "registering {}@{}".format(profile, sat.getNewAccountDomain())
        pwd = generate_pwd()
        if profile == "libervia":
            config.fixConfigOption("libervia", "passphrase", pwd)
        elif profile == "admin":
            with open("/home/sat/ADMIN_PWD", "w") as f:
                f.write("%s\n" % pwd)
        sat.registerSatAccount(admin_email, pwd, profile)

os.execvp("libervia", ["libervia"] + sys.argv[1:])