Source code for egaia.egaia_setup

import os
from whichcraft import which
import egaia_config
import utils

usr_cfg = egaia_config.usr_cfg

config = egaia_config.loadConfig()
binaries = ['libreoffice', 'ffmpeg', 'identify', 'ffprobe', 'inkscape',
            'mogrify', 'convert', 'montage', 'wget', 'wkhtmltopdf', 
            'wkhtmltoimage']

## create a default config file egaia_config.dumpConfig()
## set binary paths setBinaries()
## prompt the user for input for missing fields


[docs]def setBinaries(): """Locate binary files required for format conversions. Add paths to the configuration files, and list missing binaries on stdout. If a binary is not found automatically, the path in the configuration file is left intact.""" missing = list() for bin in binaries: location = which(bin) if location: # write to local config config.set('system', 'cmd_%s' % bin, location) else: missing.append(bin) if not os.path.exists(usr_cfg): os.makedirs(os.path.expanduser(os.path.join('~', '.config', 'egaia'))) with open(usr_cfg, 'wb') as configfile: config.write(configfile) if missing: print "Missing binaries:" print ', '.join(missing) return
[docs]def setup(interactive=True): """Run all the setup commands.""" # Create a default user configuration file egaia_config.dumpConfig(usr_cfg) # Set locations of binary dependencies setBinaries() # Prompt user for basic data about the archive if interactive: egaia_config.updateConfig(usr_cfg, 'archive')
def _cli(args): """egaia setup Install and set up the program. Usage: egaia setup --help egaia setup [ --non-interactive ] egaia setup --update-bin """ if args['--update-bin']: setBinaries() return interactive=True if args['--non-interactive']: interactive=False setup(interactive)