diff --git a/regex_exp.py b/regex_exp.py deleted file mode 100644 index 86ebd9c..0000000 --- a/regex_exp.py +++ /dev/null @@ -1,82 +0,0 @@ -from calculate.utils.package import PackageAtomParser -from pyparsing import Regex, Literal, LineEnd, restOfLine, LineStart - - -ADD, REMOVE, MOVE = range(0, 3) - - -def parse_add(parse_result): - target = parse_result.asDict()['target'] - path = parse_result.asDict()['path'] - return {'action': ADD, 'target': target, 'path': path} - - -def parse_remove(parse_result): - target = parse_result.asDict()['target'] - path = parse_result.asDict()['path'] - return {'action': REMOVE, 'target': target, 'path': path} - - -def parse_move(parse_result): - source = parse_result.asDict()['source'] - target = parse_result.asDict()['target'] - path = parse_result.asDict()['path'] - return {'action': MOVE, 'source': source, 'target': target, 'path': path} - - -def parse_skip(parse_result): - print('skip:', parse_result) - return [None] - - -def parse_unexpected(parse_result): - print('unexpected') - result = parse_result[0] - if not result: - return [None] - else: - return {'unexpected': result} - - -atom = Regex(PackageAtomParser.atom_regex) -remove_symbol = Literal('!') -path = Regex(r'\S+') - -add_parser = atom('target') + path('path') + LineEnd().suppress() -add_parser.setParseAction(parse_add) - -move_parser = (atom('source') + Literal(',').suppress() + atom('target') - + path('path') + LineEnd().suppress()) -move_parser.setParseAction(parse_move) - -remove_parser = (remove_symbol.suppress() + atom('target') + path('path') - + LineEnd().suppress()) -remove_parser.setParseAction(parse_remove) - -empty_line = LineStart().suppress() + LineEnd().suppress() -empty_line.setParseAction(parse_skip) - -comment = Literal('#') + restOfLine + LineEnd().suppress() -comment.setParseAction(parse_skip) - -unexpected = restOfLine + LineEnd().suppress() -unexpected.setParseAction(parse_unexpected) - - -template_parser = (move_parser | remove_parser | add_parser | comment - | empty_line | unexpected) - -text = '''dev-lang/python-3.6[abi_x86_64,ssl] /usr/dir/file - -# comment -!sys-fs/udisks-1.0.5-r1 /usr/bin/file - -ll -dev-lang/python-3.6[abi_x86_64,ssl], sys-fs/udisks-1.0.5-r1 /usr/bin/file - -''' - -for tokens, start, end in template_parser.scanString(text): - result = tokens[0] - if result is not None: - print(result) diff --git a/run.py b/run.py deleted file mode 100644 index 7aff982..0000000 --- a/run.py +++ /dev/null @@ -1,111 +0,0 @@ -import os -import shutil -from calculate.utils.files import join_paths -from calculate.templates.template_engine import Variables -from calculate.utils.package import PackageAtomName, Version, Package -from calculate.templates.template_processor import DirectoryProcessor,\ - TemplateWrapper - - -CHROOT_PATH = os.path.join(os.getcwd(), - 'tests/templates/testfiles/test_dir_processor_root') -CONFIG_PATH = os.path.join(CHROOT_PATH, 'var/lib/calculate/config') -CONFIG_ARCHIVE_PATH = os.path.join(CHROOT_PATH, - 'var/lib/calculate/config-archive') -EXECUTE_ARCHIVE_PATH = os.path.join(CHROOT_PATH, - 'var/lib/calculate/.execute') - -test_package_name = PackageAtomName( - {'pkg_path': os.path.join( - CHROOT_PATH, - 'var/db/pkg/test-category/test-package-1.0'), - 'version': Version('1.0')}) - -other_package_name = PackageAtomName( - {'pkg_path': os.path.join( - CHROOT_PATH, - 'var/db/pkg/test-category/other-package-1.1'), - 'version': Version('1.1')}) - -new_package_name = PackageAtomName( - {'pkg_path': os.path.join( - CHROOT_PATH, - 'var/db/pkg/test-category/new-package-0.1.1'), - 'version': Version('1.0')}) - -# Вместо модуля переменных. -group = Variables({'bool': True, - 'list': [1, 2, 3]}) - -variables = Variables({'variable_1': 'value_1', - 'variable_2': 'value_2', - 'group': group}) - -install = Variables({'os_disk_dev': 'os_disk_dev_value', - 'version': 1.5, - 'number': 128, - 'boolean': False, - 'type': 'static', - 'path': '/usr/sbin'}) - -merge = Variables({'var_1': 674, - 'var_2': 48, - 'version': 1.0, - 'calculate_domains': 'lists.calculate-linux.org', - 'ip_value': '127.0.0.0/8'}) - -main = Variables({'cl_template_path': - '{0},{1}'.format(os.path.join(CHROOT_PATH, - 'templates'), - os.path.join(CHROOT_PATH, - 'var/calculate/templates')), - 'cl_chroot_path': CHROOT_PATH, - 'cl_config_path': CONFIG_PATH, - 'cl_config_archive': CONFIG_ARCHIVE_PATH, - 'cl_exec_dir_path': EXECUTE_ARCHIVE_PATH, - 'cl_ignore_files': '*.swp'}) - -test = ({'test_root': CHROOT_PATH}) - -datavars = Variables({'install': install, - 'merge': merge, - 'variables': variables, - 'main': main, - 'test': test, - 'custom': Variables()}) - - -TemplateWrapper._protected_is_set = False - -shutil.copytree(os.path.join(CHROOT_PATH, 'etc.backup'), - os.path.join(CHROOT_PATH, 'etc'), - symlinks=True) -shutil.copytree(os.path.join(CHROOT_PATH, 'var.backup'), - os.path.join(CHROOT_PATH, 'var'), - symlinks=True) - - -datavars.main['cl_template_path'] = os.path.join(CHROOT_PATH, - 'templates_20') -directory_processor = DirectoryProcessor('install', - datavars_module=datavars) -directory_processor.process_template_directories() -test_package = Package(test_package_name, chroot_path=CHROOT_PATH) - -# Для разнообразия один из шаблонов удаляет файл, а не создает. -# Но в данном случае он ничего не сделает. -assert os.path.exists(join_paths(CHROOT_PATH, - '/etc/dir_20/file_0')) -assert '/etc/dir_20/file_0' not in test_package - -assert not os.path.islink(join_paths(CHROOT_PATH, '/etc/dir_19')) -assert os.path.isdir(join_paths(CHROOT_PATH, '/etc/dir_19')) - -assert os.path.exists(join_paths(CHROOT_PATH, - '/etc/dir_19/dir_0')) -assert os.path.exists(join_paths(CHROOT_PATH, - '/etc/dir_19/dir_0/file_0')) -assert '/etc/dir_19/dir_0/file_0' in test_package - -shutil.rmtree(os.path.join(CHROOT_PATH, 'etc')) -shutil.rmtree(os.path.join(CHROOT_PATH, 'var'))