def exec_cmd(argv): try: script = None encoding = 'utf8' output = 'w' if len(argv) > 2: opts, _ = getopt.getopt( argv[2:], 'hs:e:o:', ['help', '--script', '--encoding', '--output']) for name, value in opts: if name in ('-h', '--help'): show_help() if name in ('-s', '--script'): script = value if name in ('-e', '--encoding'): encoding = value if name in ('-o', '--output'): output = value if str_utils.is_empty(script) or not os.path.exists(script): print 'error : could not find script file : ' + script sys.exit() edit(script, encoding, output) else: show_help() except GetoptError, e: print 'error : ' + e.msg
def exec_cmd(argv): try: script = None encoding = 'utf8' output = 'w' if len(argv) > 2: opts, _ = getopt.getopt(argv[2:], 'hs:e:o:', ['help', '--script', '--encoding', '--output']) for name, value in opts: if name in ('-h', '--help'): show_help() if name in ('-s', '--script'): script = value if name in ('-e', '--encoding'): encoding = value if name in ('-o', '--output'): output = value if str_utils.is_empty(script) or not os.path.exists(script): print 'error : could not find script file : ' + script sys.exit() edit(script, encoding, output) else: show_help() except GetoptError, e: print 'error : ' + e.msg
def __read_script(script, encoding = 'utf8'): file_reg = '\[(.*)\]' cmd_reg = '(\w+)\s*:\s*(.*)' tag_file = None cmd_set = {} if isinstance(script, str): content = text_file.read_file(script, 'all', encoding, True) elif isinstance(script, list): content = script elif isinstance(script, dict): return script else: raise IOError('script must be a filename or script command list') for line in content: if str_utils.is_empty(line): continue line = line.strip() if str_utils.startswith(line, '#'): continue if regex_utils.check_line(file_reg, line): tag_file = regex_utils.parse_line(file_reg, line)[0] if str_utils.is_not_empty(tag_file): tag_file = tag_file.strip() elif regex_utils.check_line(cmd_reg, line): cmd_item = regex_utils.parse_line(cmd_reg, line) if tag_file is not None and cmd_item is not None and len(cmd_item) == 2: cmd_list = cmd_set.get(tag_file) if cmd_set.has_key(tag_file) else [] cmd_list.append(cmd_item) cmd_set[tag_file] = cmd_list return cmd_set
def size(filename): if string_utils.is_empty(filename): return 0 size = 0 with codecs.open(filename, 'r') as f: for _ in f: size = size + 1 return size
def filter(self, filename): if string_utils.is_empty(filename): return False if hasattr(self, "file_filter"): flag = False for filter_item in self.file_filter: if regex_utils.check_line(str(filter_item), filename): flag = True break return flag else: return True
def exec_cmd(argv): try: filename = None pattern = None number = False model = 'e' if len(argv) > 2: opts, _ = getopt.getopt( argv[2:], 'hf:p:nm:', ['help', '--file', '--pattern', '--number', '--model']) for name, value in opts: if name in ('-h', '--help'): show_help() if name in ('-f', '--file'): filename = value if name in ('-p', '--pattern'): pattern = value if name in ('-n', '--number'): number = True if name in ('-m', '--model'): model = value if str_utils.is_empty(filename) or not os.path.exists(filename): print 'error : could not find file : ' + filename sys.exit() if str_utils.is_empty(pattern): print 'error : pattern is empty' sys.exit() result = grep(filename, pattern, number, model) if result and isinstance(result, list): for line in result: print line else: show_help() except GetoptError, e: print 'error : ' + e.msg
def exec_cmd(argv): try: filename = None pattern = None number = False model = "e" if len(argv) > 2: opts, _ = getopt.getopt(argv[2:], "hf:p:nm:", ["help", "--file", "--pattern", "--number", "--model"]) for name, value in opts: if name in ("-h", "--help"): show_help() if name in ("-f", "--file"): filename = value if name in ("-p", "--pattern"): pattern = value if name in ("-n", "--number"): number = True if name in ("-m", "--model"): model = value if str_utils.is_empty(filename) or not os.path.exists(filename): print "error : could not find file : " + filename sys.exit() if str_utils.is_empty(pattern): print "error : pattern is empty" sys.exit() result = grep(filename, pattern, number, model) if result and isinstance(result, list): for line in result: print line else: show_help() except GetoptError, e: print "error : " + e.msg
def edit(script, base_path=None, encoding='utf8', output='w'): cmd_set = __read_script(script) for filename in cmd_set: if str_utils.is_empty(filename): continue cmd_list = cmd_set.get(filename) if str_utils.is_not_empty(base_path): if filename.startswith('/'): filename = base_path + filename else: filename = os.path.join(base_path, filename) if os.path.exists(filename): if os.path.isdir(filename): continue else: __create(filename) content = text_file.read_file(filename, 'all', encoding, False) content = content if content else [] for cmd_item in cmd_list: cmd = cmd_item[0].strip() cmd_arg = cmd_item[1].strip() if str_utils.is_not_empty(cmd): cmd = cmd.lower() if cmd == 'd': content = __delete(cmd_arg, content) elif cmd == 'u': content = __update(cmd_arg, content) elif cmd == 'a': content = __add(cmd_arg, content) elif cmd == 'n': value = __reduce_value(cmd_arg) content.append(value) elif cmd == 'c': content = [] content = [line for line in content if line != None] if output == 'w': text_file.write_file(filename, content, encoding, '') else: print ''.join(content)
def edit(script, base_path = None, encoding = 'utf8', output = 'w'): cmd_set = __read_script(script) for filename in cmd_set: if str_utils.is_empty(filename): continue cmd_list = cmd_set.get(filename) if str_utils.is_not_empty(base_path): if filename.startswith('/'): filename = base_path + filename else: filename = os.path.join(base_path, filename) if os.path.exists(filename): if os.path.isdir(filename): continue else: __create(filename) content = text_file.read_file(filename, 'all', encoding, False) content = content if content else [] for cmd_item in cmd_list: cmd = cmd_item[0].strip() cmd_arg = cmd_item[1].strip() if str_utils.is_not_empty(cmd): cmd = cmd.lower() if cmd == 'd': content = __delete(cmd_arg, content) elif cmd == 'u': content = __update(cmd_arg, content) elif cmd == 'a': content = __add(cmd_arg, content) elif cmd == 'n': value = __reduce_value(cmd_arg) content.append(value) elif cmd == 'c': content = [] content = [line for line in content if line != None] if output == 'w': text_file.write_file(filename, content, encoding, '') else: print ''.join(content)
def __match(line_num, line_text, model, pattern): if str_utils.is_blank(line_text): return False if str_utils.is_blank(pattern): return True patterns = [] if type(pattern) == types.ListType: patterns = pattern elif type(pattern) == types.FunctionType: patterns = [pattern] else: patterns = [str(pattern)] if str_utils.is_empty(model): model = "s" model = model.lower() for match_pattern in patterns: if model == "s": if match_pattern in line_text: return True elif model == "n": _min, _max = __split_region(match_pattern) if line_num >= _min and line_num <= _max: return True elif model == "e": if regex_utils.check_line(match_pattern, line_text): return True elif model == "a": if type(pattern) == types.FunctionType: if pattern(line_text): return True return False
def __match(line_num, line_text, model, pattern): if str_utils.is_blank(line_text): return False if str_utils.is_blank(pattern): return True patterns = [] if type(pattern) == types.ListType: patterns = pattern elif type(pattern) == types.FunctionType: patterns = [pattern] else: patterns = [str(pattern)] if str_utils.is_empty(model): model = 's' model = model.lower() for match_pattern in patterns: if model == 's': if match_pattern in line_text: return True elif model == 'n': _min, _max = __split_region(match_pattern) if line_num >= _min and line_num <= _max: return True elif model == 'e': if regex_utils.check_line(match_pattern, line_text): return True elif model == 'a': if type(pattern) == types.FunctionType: if pattern(line_text): return True return False
def __read_script(script, encoding='utf8'): file_reg = '\[(.*)\]' cmd_reg = '(\w+)\s*:\s*(.*)' tag_file = None cmd_set = {} if isinstance(script, str): content = text_file.read_file(script, 'all', encoding, True) elif isinstance(script, list): content = script elif isinstance(script, dict): return script else: raise IOError('script must be a filename or script command list') for line in content: if str_utils.is_empty(line): continue line = line.strip() if str_utils.startswith(line, '#'): continue if regex_utils.check_line(file_reg, line): tag_file = regex_utils.parse_line(file_reg, line)[0] if str_utils.is_not_empty(tag_file): tag_file = tag_file.strip() elif regex_utils.check_line(cmd_reg, line): cmd_item = regex_utils.parse_line(cmd_reg, line) if tag_file is not None and cmd_item is not None and len( cmd_item) == 2: cmd_list = cmd_set.get(tag_file) if cmd_set.has_key( tag_file) else [] cmd_list.append(cmd_item) cmd_set[tag_file] = cmd_list return cmd_set
def wrapper(*args, **kwargs): if string_utils.is_empty(args[1]) and string_utils.is_empty(kwargs.get('container_id')): raise ValueError('Container id is Empty') return func( *args , **kwargs)
def wrapper(*args, **kwargs): if string_utils.is_empty(args[1]) and string_utils.is_empty(kwargs.get('image_name')): raise ValueError('Image name is Empty') return func( *args , **kwargs)