salt-formula-manager/salt-formula-manager.py

52 lines
1.4 KiB
Python
Raw Normal View History

#!/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()