forked from stove/risotto
58 lines
2.7 KiB
Python
58 lines
2.7 KiB
Python
#!/usr/bin/python3
|
|
|
|
from os import listdir, makedirs
|
|
from os.path import isfile, isdir, join, dirname
|
|
from shutil import copy2, copytree, rmtree
|
|
|
|
from ansible.plugins.action import ActionBase
|
|
from risotto.utils import RISOTTO_CONFIG
|
|
|
|
|
|
class ActionModule(ActionBase):
|
|
def run(self, tmp=None, task_vars=None):
|
|
super(ActionModule, self).run(tmp, task_vars)
|
|
module_args = self._task.args.copy()
|
|
modules = module_args['modules']
|
|
dataset_directories = RISOTTO_CONFIG['directories']['datasets']
|
|
install_dir = join('/tmp/risotto/images')
|
|
if isdir(install_dir):
|
|
rmtree(install_dir)
|
|
for module_name, depends in modules.items():
|
|
for dataset_directory in dataset_directories:
|
|
for depend in depends:
|
|
manual = join(dataset_directory, depend, 'manual', 'image')
|
|
if not isdir(manual):
|
|
continue
|
|
for filename in listdir(manual):
|
|
src_file = join(manual, filename)
|
|
dst_file = join(install_dir, module_name, filename)
|
|
if isdir(src_file):
|
|
if not isdir(dst_file):
|
|
makedirs(dst_file)
|
|
for subfilename in listdir(src_file):
|
|
if not isfile(dst_file):
|
|
src = join(src_file, subfilename)
|
|
dst = join(dst_file, subfilename)
|
|
if isfile(src):
|
|
copy2(src, dst)
|
|
else:
|
|
copytree(src, dst)
|
|
elif not isfile(dst_file):
|
|
dst = dirname(dst_file)
|
|
if not isdir(dst):
|
|
makedirs(dst)
|
|
if isfile(src_file):
|
|
copy2(src_file, dst_file)
|
|
else:
|
|
copytree(src_file, dst_file)
|
|
return dict(ansible_facts=dict({}))
|
|
#A REFAIRE ICI tests_dir = join(as_dir, 'tests')
|
|
#A REFAIRE ICI if isdir(tests_dir):
|
|
#A REFAIRE ICI cfg.tests.append(tests_dir)
|
|
#A REFAIRE ICI# for filename in listdir(tests_dir):
|
|
#A REFAIRE ICI# src_file = join(tests_dir, filename)
|
|
#A REFAIRE ICI# dst_file = join(INSTALL_DIR, 'tests', filename)
|
|
#A REFAIRE ICI# applicationservice_copy(src_file,
|
|
#A REFAIRE ICI# dst_file,
|
|
#A REFAIRE ICI# False,
|
|
#A REFAIRE ICI# )
|