def post_install(self, name, path, vars, dbinfo={}): users = UsersBackend(self.app) users.add_user('gollum') s = self.app.get_backend(apis.services.IServiceManager) s.edit('gollum', { 'stype': 'program', 'directory': path, 'user': '******', 'command': 'gollum', 'autostart': 'true', 'autorestart': 'true', 'stdout_logfile': '/var/log/gollum.log', 'stderr_logfile': '/var/log/gollum.log' } ) s.enable('gollum', 'supervisor') shell("chown gollum %s" % path) shell("GIT_DIR=%s git init" % os.path.join(path, ".git"))
def post_install(self, name, path, vars, dbinfo={}): nodectl = apis.langassist(self.app).get_interface('NodeJS') users = UsersBackend(self.app) d = json.loads(open(os.path.join(path, 'config.js'), 'r').read()) if d["storage"]["type"] == "redis": d["storage"]["type"] = "file" d["storage"]["path"] = "./data" if d["storage"].has_key("host"): del d["storage"]["host"] if d["storage"].has_key("port"): del d["storage"]["port"] if d["storage"].has_key("db"): del d["storage"]["db"] if d["storage"].has_key("expire"): del d["storage"]["expire"] open(os.path.join(path, 'config.js'), 'w').write(json.dumps(d)) nodectl.install_from_package(path) users.add_user('haste') s = self.app.get_backend(apis.services.IServiceManager) s.edit('haste', { 'stype': 'program', 'directory': path, 'user': '******', 'command': 'node %s'%os.path.join(path, 'server.js'), 'autostart': 'true', 'autorestart': 'true', 'environment': 'NODE_ENV="production"', 'stdout_logfile': '/var/log/haste.log', 'stderr_logfile': '/var/log/haste.log' } ) s.enable('haste', 'supervisor') # Finally, make sure that permissions are set so that Haste # can save its files properly. shell('chown -R haste ' + path)
def post_install(self, name, path, vars, dbinfo={}): nodectl = apis.langassist(self.app).get_interface('NodeJS') users = UsersBackend(self.app) if not os.path.exists('/usr/bin/python') and os.path.exists( '/usr/bin/python'): os.symlink('/usr/bin/python2', '/usr/bin/python') d = json.loads(open(os.path.join(path, 'package.json'), 'r').read()) del d['dependencies']['bcryptjs'] d['dependencies']['bcrypt'] = '0.7.8' open(os.path.join(path, 'package.json'), 'w').write(json.dumps(d)) d = open(os.path.join(path, 'core/server/models/user.js'), 'r').read() d = d.replace('bcryptjs', 'bcrypt') open(os.path.join(path, 'core/server/models/user.js'), 'w').write(d) nodectl.install_from_package(path, 'production', { 'sqlite': '/usr/bin', 'python': '/usr/bin/python2' }) users.add_user('ghost') s = self.app.get_backend(apis.services.IServiceManager) s.edit( 'ghost', { 'stype': 'program', 'directory': path, 'user': '******', 'command': 'node %s' % os.path.join(path, 'index.js'), 'autostart': 'true', 'autorestart': 'true', 'environment': 'NODE_ENV="production"', 'stdout_logfile': '/var/log/ghost.log', 'stderr_logfile': '/var/log/ghost.log' }) s.enable('ghost', 'supervisor') addr = vars.getvalue('addr', 'localhost') port = vars.getvalue('port', '80') # Get Mail settings mail_settings = { 'transport': vars.getvalue('ghost-transport', ''), 'service': vars.getvalue('ghost-service', ''), 'mail_user': vars.getvalue('ghost-mail-user', ''), 'mail_pass': vars.getvalue('ghost-mail-pass', ''), 'from_address': vars.getvalue('ghost-from-address', '') } # Create/Edit the Ghost config file f = open(os.path.join(path, 'config.example.js'), 'r').read() with open(os.path.join(path, 'config.js'), 'w') as config_file: f = f.replace( 'http://my-ghost-blog.com', 'http://' + addr + (':' + port if port != '80' else '')) if len(set(mail_settings.values())) != 1 and\ mail_settings['transport'] != '': # If the mail settings exist, add them f = f.replace( "mail: {},",\ 'mail: {\n' "\tfromaddress: '" + mail_settings['from_address'] + "',\n" "\ttransport: '" + mail_settings['transport'] + "',\n" "\t\toptions: {\n" "\t\t\tservice: '" + mail_settings['service'] + "',\n" "\t\t\tauth: {\n" "\t\t\t\tuser: '******'mail_user'] + "',\n" "\t\t\t\tpass: '******'mail_pass'] + "'\n" "\t\t\t}\n" "\t\t}\n" "},\n" ) config_file.write(f) config_file.close() # Finally, make sure that permissions are set so that Ghost # can make adjustments and save plugins when need be. shell('chown -R ghost ' + path)
def post_install(self, name, path, vars, dbinfo={}): nodectl = apis.langassist(self.app).get_interface('NodeJS') users = UsersBackend(self.app) if not os.path.exists('/usr/bin/python') and os.path.exists('/usr/bin/python'): os.symlink('/usr/bin/python2', '/usr/bin/python') d = json.loads(open(os.path.join(path, 'package.json'), 'r').read()) del d['dependencies']['bcryptjs'] d['dependencies']['bcrypt'] = '0.7.8' open(os.path.join(path, 'package.json'), 'w').write(json.dumps(d)) d = open(os.path.join(path, 'core/server/models/user.js'), 'r').read() d = d.replace('bcryptjs', 'bcrypt') open(os.path.join(path, 'core/server/models/user.js'), 'w').write(d) nodectl.install_from_package(path, 'production') users.add_user('ghost') s = self.app.get_backend(apis.services.IServiceManager) s.edit('ghost', { 'stype': 'program', 'directory': path, 'user': '******', 'command': 'node %s'%os.path.join(path, 'index.js'), 'autostart': 'true', 'autorestart': 'true', 'environment': 'NODE_ENV="production"', 'stdout_logfile': '/var/log/ghost.log', 'stderr_logfile': '/var/log/ghost.log' } ) s.enable('ghost', 'supervisor') addr = vars.getvalue('addr', 'localhost') port = vars.getvalue('port', '80') # Get Mail settings mail_settings = { 'transport' : vars.getvalue('ghost-transport', ''), 'service' : vars.getvalue('ghost-service', ''), 'mail_user' : vars.getvalue('ghost-mail-user', ''), 'mail_pass' : vars.getvalue('ghost-mail-pass', ''), 'from_address' : vars.getvalue('ghost-from-address', '') } # Create/Edit the Ghost config file f = open(os.path.join(path, 'config.example.js'), 'r').read() with open(os.path.join(path, 'config.js'), 'w') as config_file: f = f.replace('http://my-ghost-blog.com', 'http://'+addr+(':'+port if port != '80' else'')) if len(set(mail_settings.values())) != 1 and\ mail_settings['transport'] != '': # If the mail settings exist, add them f = f.replace( "mail: {},",\ 'mail: {\n' "\tfromaddress: '" + mail_settings['from_address'] + "',\n" "\ttransport: '" + mail_settings['transport'] + "',\n" "\t\toptions: {\n" "\t\t\tservice: '" + mail_settings['service'] + "',\n" "\t\t\tauth: {\n" "\t\t\t\tuser: '******'mail_user'] + "',\n" "\t\t\t\tpass: '******'mail_pass'] + "'\n" "\t\t\t}\n" "\t\t}\n" "},\n" ) config_file.write(f) config_file.close() # Finally, make sure that permissions are set so that Ghost # can make adjustments and save plugins when need be. shell('chown -R ghost ' + path)
def post_install(self, name, path, vars): nodectl = apis.langassist(self.app).get_interface('NodeJS') users = UsersBackend(self.app) if not os.path.exists('/usr/bin/python') and os.path.exists('/usr/bin/python'): os.symlink('/usr/bin/python2', '/usr/bin/python') # A bug in 0.4.1 prevents [email protected] from installing properly. # Fallback to 2.1.15 d = json.loads(open(os.path.join(path, 'package.json'), 'r').read()) d['dependencies']['sqlite3'] = '2.1.15' open(os.path.join(path, 'package.json'), 'w').write(json.dumps(d)) nodectl.install_from_package(path, 'production') users.add_user('ghost') s = apis.orders(self.app).get_interface('supervisor') if s: s[0].order('new', 'ghost', 'program', [('directory', path), ('user', 'ghost'), ('command', 'node %s'%os.path.join(path, 'index.js')), ('autostart', 'true'), ('autorestart', 'true'), ('environment', 'NODE_ENV="production"'), ('stdout_logfile', '/var/log/ghost.log'), ('stderr_logfile', '/var/log/ghost.log')]) addr = vars.getvalue('addr', 'localhost') port = vars.getvalue('port', '80') # Get Mail settings mail_settings = { 'transport' : vars.getvalue('ghost-transport', ''), 'service' : vars.getvalue('ghost-service', ''), 'mail_user' : vars.getvalue('ghost-mail-user', ''), 'mail_pass' : vars.getvalue('ghost-mail-pass', ''), 'from_address' : vars.getvalue('ghost-from-address', '') } # Create/Edit the Ghost config file f = open(os.path.join(path, 'config.example.js'), 'r').read() with open(os.path.join(path, 'config.js'), 'w') as config_file: f = f.replace('http://my-ghost-blog.com', 'http://'+addr+(':'+port if port != '80' else'')) if len(set(mail_settings.values())) != 1 and\ mail_settings['transport'] != '': # If the mail settings exist, add them f = f.replace( "mail: {},",\ 'mail: {\n' "\tfromaddress: '" + mail_settings['from_address'] + "',\n" "\ttransport: '" + mail_settings['transport'] + "',\n" "\t\toptions: {\n" "\t\t\tservice: '" + mail_settings['service'] + "',\n" "\t\t\tauth: {\n" "\t\t\t\tuser: '******'mail_user'] + "',\n" "\t\t\t\tpass: '******'mail_pass'] + "'\n" "\t\t\t}\n" "\t\t}\n" "},\n" ) config_file.write(f) config_file.close() # Finally, make sure that permissions are set so that Ghost # can make adjustments and save plugins when need be. shell('chown -R ghost ' + path)