#!/usr/bin/env python from git import Repo import os import sys import yaml # constants CONFIG_FILE = 'sfm.yaml' # reads configuration and returns the dictionary def read_config(): f = open(CONFIG_FILE, 'r') conf = yaml.load(f) f.close() return conf # makes the formulas directory if it doesn't exist def check_formula_dir(conf): # check if the formulas directory is actually a directory if not os.path.isdir(conf['formulas_dir']): # check if it's a file if os.path.exists(conf['formulas_dir']): print(str(conf['formulas_dir']) + ' exists but is not a directory. Please fix this.') sys.exit(1) # create it if not else: os.makedirs(conf['formulas_dir']) # loops through the array of repos and downloads them def get_formulas(conf): for formula in conf['formulas']: if isinstance(formula, dict): print('Downloading ' + str(formula['url']) + ' into ' + str(conf['formulas_dir']) + '/' + str(formula['name'])) elif isinstance(formula, str): print('Downloading ' + str(conf['formulas_url']) + str(formula) + '-formula into ' + str(conf['formulas_dir']) + '/' + str(formula) + '-formula') # main program def main(): # read configuration settings conf = read_config() # make sure the formulas directory exists check_formula_dir(conf) # do the formula stuff get_formulas(conf) # run main main()