Beispiel #1
0
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('Связки с таким именем не существует.')
Beispiel #2
0
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
Beispiel #3
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
Beispiel #4
0
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
Beispiel #5
0
Datei: sl.py Projekt: sttell/ASMR
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('Введите опцию или название связки.')
Beispiel #6
0
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('Укажите имя связки которую хотите удалить.')
Beispiel #7
0
 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
Beispiel #8
0
 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