#!/usr/bin/python3 import re class color: ERR='\033[1;31m' NC='\033[0m' SUCCESS = '\033[92m' WARN='\033[1;33m' def debug (message, verbosity, platform=None): if verbosity >= 4: print ("[" + str(platform) + "] " + message) def notify (message, verbosity, platform=None): if verbosity >= 3: print ("[" + str(platform) + "] " + message) def warn (message, verbosity, platform=None): if verbosity >= 2: print (color.WARN + "[" + str(platform) + "] " + message + color.NC) def error (message, verbosity=1, platform=None): if verbosity >= 1: print (color.ERR + "[" + str(platform) + "] " + message + color.NC) def success (message): # caused issues with piping output into other stuff # print (color.SUCCESS + message + color.NC) print (message) def search (content, begins_with, ends_with, index=0, reverse=False): # hack to search based on ends_with being significant if reverse: content = content[::-1] temp = begins_with begins_with = ends_with[::-1] ends_with = temp[::-1] # escape + signs as needed begins_with = begins_with.replace('+', "\+") ends_with = ends_with.replace('+', "\+") # look for longest match, not shortest, if one delimeter is empty if begins_with == '' or ends_with == '': result = re.findall('(?<=' + begins_with + ')(.*)(?=' + ends_with + ')', content) else: result = re.findall('(?<=' + begins_with + ')(.*?)(?=' + ends_with + ')', content) if len(result) > 0: if reverse: # get index from end instead of from beginning # and reverse string return result[-1 * index - 1][::-1] else: return result[index]