Exemple #1
0
def install_apps(logger, settings, dry_run=False):
    logger.info('Section "core": Installing applications..')
    logger.die_for_sudo()

    am = AptManager(logger, log_file=explode(settings['paths']['log_file']))

    logger.info('Installing packages: %s.' % ', '.join(settings['packages']['core']))
    am.install_packages(settings['packages']['core'], dry_run=dry_run)
Exemple #2
0
def create_backups(logger, settings, dry_run=False):
    logger.empty()
    logger.info('Backing up some files if necessary..')

    for backup in settings['backups']:
        src = explode(*backup)
        # only backup if source file exists and is not a symlink already
        if os.path.exists(src) and not os.path.islink(src) and os.path.isfile(src):
            logger.info('Backing up "%s".' % src)
            if not dry_run:
                shutil.copy2(src, os.path.abspath(src) + '.xbkp')
Exemple #3
0
def create_symlinks(logger, settings, path=None, val=None, dry_run=False):
    if 'tag_run_once' not in dir(create_symlinks):
        logger.empty()
        logger.info('Creating symlinks..')
        create_symlinks.tag_run_once = True

    if not path:
        path = explode(settings['paths']['dotfiles'])

    if not val:
        val = settings['paths']['symlinks']

    if isinstance(val, dict):
        for k, v in val.items():
            create_symlinks(logger, settings, explode(path, k), v, dry_run=dry_run)
    else:
        if dry_run:
            logger.info('%s -> %s' % (explode(*val), path))
        else:
            os.makedirs(explode(*val[:-1]), exist_ok=True)
            symlink(logger, path, explode(*val), forced=True)