def run(args, opts): settings = load_settings() # load settiongs from json tr = settings['text-reader'] # get text-reader links = load_links() # load links dict # dict 'opt_name' = > function opt_dict = {'-e': opt_e, '-c': opt_c, '-s': opt_s, '-o': opt_o, 'no_opt': no_opt} # if args list not empty and 1st argument in links list if args and args[0] in links.keys(): link = links[args[0]] # get link info # if opts list empty if not opts: opt_dict['no_opt'](tr, link) # else called opt func from optrions dict else: opt_dict[opts[0]](tr, link) else: print('Связки с таким именем не существует.')
def inplace_opt(fp, ln, lt): links = load_links() # load links dict if ln in links.keys(): # If this link is not in the list of links print('Связка с таким именем уже существует.') # Inform user return 1 # return Error # Depending on the type of links, we create files and create a link if lt == 'CASM': asm_path = create_file(fp[ASM_SPEC]) c_path = create_file(fp[C_SPEC]) out_path = create_file(ln + '.out') link_info = ['sc', c_path, asm_path, out_path] elif lt == 'C': c_path = create_file(fp[C_SPEC]) out_path = create_file(ln + '.out') link_info = ['c', c_path, out_path] elif lt == 'ASM': asm_path = create_file(fp[ASM_SPEC]) out_path = create_file(ln + '.out') link_info = ['s', asm_path, out_path] elif lt == 'NASM': asm_path = create_file(fp[NASM_SPEC]) out_path = create_file(ln + '.out') link_info = ['nasm', asm_path, out_path] elif lt == 'NOTYPE': return 1 # Update links dict links[ln] = link_info update_links(links) return 0
def c_opt(fp, ln, lt): links = load_links() # Load links dict settings = load_settings() # Load settigs dict # if link name not in links list if ln in links.keys(): print('Связка с таким именем существует.') return 1 # if link type 'NOTYPE' if lt == 'NOTYPE': # create files, update link c_path = create_file(ln + '.c') out_path = create_file(ln + '.out') link_info = ['c', c_path, out_path] links[ln] = link_info update_links(links) else: try: c_path = create_file(fp[C_SPEC]) out_path = create_file(ln + '.out') link_info = ['c', c_path, out_path] links[ln] = link_info update_links(links) except KeyError: print( 'Произошла ошбика создания связки. Неверно указано расширение создаваемого файла.' ) return 1 except: print( 'Произошла ошбика создания связки. Неверно указан файл или не удалось создать файл с таким именем.' ) return 1
def nasm_opt(fp, ln, lt): links = load_links() settings = load_settings() if ln in links.keys(): print('Связка с таким именем существует.') return 1 if lt == 'NOTYPE': asm_path = create_file(ln + '.asm') out_path = create_file(ln + '.out') link_info = ['nasm', asm_path, out_path] links[ln] = link_info update_links(links) else: try: asm_path = create_file(fp[NASM_SPEC]) out_path = create_file(ln + '.out') link_info = ['nasm', asm_path, out_path] links[ln] = link_info update_links(links) except KeyError: print( 'Произошла ошбика создания связки. Неверно указано расширение создаваемого файла.' ) return 1 except: print( 'Произошла ошбика создания связки. Неверно указан файл или не удалось создать файл с таким именем.' ) return 1
def run(args, opts): settings = jsl.load_settings() links = jsl.load_links() type_dict = {'s':'Assembler', 'sc': 'Assembler + C', 'c': 'C', 'nasm': 'NASM'} opts_funcs = {'-a': a_flag, '-s': s_flag, '-sc': sc_flag, '-c': c_flag, '-nasm': nasm_flag} if opts: try: opts_funcs[opts[0]](links, type_dict) return 0 except KeyError: print('Такой опции не существует в команде SL. Введите asmr help sl') except IndexError: pass if args: if args[0] in links.keys(): link_info = links[args[0]] print(f'Связка {args[0]} ---> Тип: {type_dict[link_info[0]]}. Кол-во исполняемых файлов: {len(link_info) - 1} шт.') print(f'Исполняемые файлы:') for i, file in enumerate(link_info[1:]): print(f' #{i + 1}: {file}') return 0 else: print('Связки с таким именем не найдено.') return 1 print('Введите опцию или название связки.')
def run(args, opts): links = load_links() # Load links opt_dict = {'-f': f_opt} # Options dict 'opt_name' -> function # if args list not empty if args: link_name = args[0] # get link # if options list if opts: try: opt_dict[opts[0]](args, links) # run option function except KeyError: print( f'Опции "{opts[0]}" не существует. Для справки введите asmr help rml.' ) else: if link_name in links.keys(): asw = input( f'Вы уверены, что хотите удалит связку {link_name}?(Да/Нет || Yes/No)\n>>> ' ) if asw.strip().lower() in 'yes y yeah ye д да': del links[link_name] update_links(links) print( f'Связка с именем {link_name} успешно удалена. Исполняемые файлы остались.' ) else: print('Удаление отменено.') else: print('Связки с таким именем не существует.') else: print('Укажите имя связки которую хотите удалить.')
def __init__(self): self.cmd = Command() # A command object self.links = load_links() # A links dict self.commands = INCLUDES.keys() # A list of available commands self.command_types = ['STANDARD', 'RUNLINK', 'HELP'] # Types of existing commands
def __init__(self): self.command_list = include.INCLUDES.keys( ) # A list of available commands self.command_dict = include.INCLUDES # A dict of command_name -> module self.links = load_links() # List of existing links