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)
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')
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)