def do_echo(self, args, arguments): """ :: Usage: echo [-r COLOR] TEXT Arguments: TEXT The text message to print COLOR the color Options: -r COLOR The color of the text. [default: NORMAL] Prints a text in the given color """ color = arguments["-r"] or "normal" color = color.upper() text = arguments["TEXT"] if color == "NORMAL": Console.msg(text) else: Console.cprint(color=color, prefix="", message=text) return ""
def do_echo(self, args, arguments): """ :: Usage: echo [-r COLOR] TEXT Arguments: TEXT The text message to print COLOR the color Options: -r COLOR The color of the text. [default: BLACK] Prints a text in the given color """ color = arguments["-r"] or "black" color = color.upper() text = arguments["TEXT"] if color is "black": Console.msg(text) else: Console.cprint(color, "", text) return ""
def banner(txt=None, c="-", prefix="#", debug=True, label=None, color=None): """ prints a banner of the form with a frame of # around the txt:: # -------------------------- # txt # -------------------------- :param color: prints in the given color :param label: adds a label :param debug: prints only if debug is true :param txt: a text message to be printed :type txt: string :param c: the character used instead of c :type c: character """ output = "" if debug: output = "\n" output += prefix + " " + 70 * c + "\n" if label is not None: output += prefix + " " + label + "\n" output += prefix + " " + 70 * c + "\n" if txt is not None: for line in txt.splitlines(): output += prefix + " " + line + "\n" output += prefix + " " + 70 * c + "\n" if color is None: color = "BLUE" Console.cprint(color, "", output)
def __getitem__(self, key): try: return self.data[key] except: name = f"cloudmesh.compute.{key}.Provider" provider = __import__(name) self.load() variables = Variables() if variables['debug'] is 'False': Console.cprint("BLUE", "", f"Loading Provider: '{key}'") return self.data[key]
def do_banner(self, args, arguments): """ :: Usage: banner [-c CHAR] [-n WIDTH] [-i INDENT] [-r COLOR] TEXT... Arguments: TEXT... The text message from which to create the banner CHAR The character for the frame. WIDTH Width of the banner INDENT indentation of the banner COLOR the color Options: -c CHAR The character for the frame. [default: #] -n WIDTH The width of the banner. [default: 70] -i INDENT The width of the banner. [default: 0] -r COLOR The color of the banner. [default: BLACK] Prints a banner form a one line text message. """ Console.ok("banner") n = int(arguments['-n']) c = arguments['-c'] i = int(arguments['-i']) color = arguments['-r'].upper() line = ' '.join(arguments['TEXT']) Console.cprint(color, "", i * " " + str((n - i) * c)) Console.cprint(color, "", i * " " + c + " " + line) Console.cprint(color, "", i * " " + str((n - i) * c)) return ""
def list(self, source=None, dir_only=False, recursive=False): """ lists all files specified in the source :param source: this can be a file or directory :param recursive: in case of directory the recursive refers to all subdirectories in the specified source :param dir_only: boolean, enlist only directories :return: dict """ HEADING() blob_file, blob_folder = self.cloud_path(source) print("File : ", blob_file) print("Folder: ", blob_folder) obj_list = [] fold_list = [] file_list = [] if blob_folder is None: # SOURCE specified is File only if not recursive: if self.storage_service.exists(self.container, blob_file): blob_prop = self.storage_service.get_blob_properties( self.container, blob_file) blob_size = self.storage_service.get_blob_properties( self.container, blob_file).properties.content_length obj_list.append(blob_prop) else: return Console.error( "File does not exist: {file}".format(file=blob_file)) else: file_found = False srch_gen = self.storage_service.list_blobs(self.container) for blob in srch_gen: if os.path.basename(blob.name) == blob_file: obj_list.append(blob) file_found = True if not file_found: return Console.error( "File does not exist: {file}".format(file=blob_file)) else: if blob_file is None: # SOURCE specified is Directory only if not recursive: file_found = False srch_gen = self.storage_service.list_blobs(self.container) for blob in srch_gen: if os.path.dirname(blob.name) == blob_folder: obj_list.append(blob) file_list.append(os.path.basename(blob.name)) file_found = True if blob_folder == '': if re.search('/', blob.name): srch_fold = \ os.path.dirname(blob.name).split('/')[0] file_found = True if srch_fold not in fold_list: fold_list.append(srch_fold) else: if blob not in obj_list: if len(os.path.dirname( blob.name).split('/')) == len( blob_folder.split('/')) + 1: fold_match = 'Y' for e in os.path.dirname( blob.name).split('/')[:-1]: if e not in blob_folder.split('/'): fold_match = 'N' if fold_match == 'Y': srch_fold = \ os.path.dirname(blob.name).split( '/')[ len(blob_folder.split('/'))] file_found = True if srch_fold not in fold_list: fold_list.append(srch_fold) if not file_found: return Console.error( "Directory does not exist: {directory}".format( directory=blob_folder)) else: file_found = False srch_gen = self.storage_service.list_blobs(self.container) for blob in srch_gen: if (os.path.dirname(blob.name) == blob_folder) or \ (os.path.commonpath( [blob.name, blob_folder]) == blob_folder): obj_list.append(blob) file_list.append(blob.name) file_found = True if not file_found: return Console.error( "Directory does not exist: {directory}".format( directory=blob_folder)) else: # SOURCE is specified with Directory and file if not recursive: if self.storage_service.exists(self.container, source[1:]): blob_prop = self.storage_service.get_blob_properties( self.container, source[1:]) blob_size = self.storage_service.get_blob_properties( self.container, source[1:]).properties.content_length obj_list.append(blob_prop) else: return Console.error( "File does not exist: {file}".format( file=source[1:])) else: return Console.error( "Invalid arguments, recursive not applicable") dict_obj = self.update_dict(obj_list) # pprint(dict_obj) if len(file_list) > 0: hdr = '#' * 90 + '\n' + 'List of files in the folder ' + '/' + blob_folder + ':' Console.cprint("BLUE", "", hdr) print(file_list) if len(fold_list) == 0: trl = '#' * 90 Console.cprint("BLUE", "", trl) if len(fold_list) > 0: hdr = '#' * 90 + '\n' + 'List of Sub-folders under the folder ' + '/' + blob_folder + ':' Console.cprint("BLUE", "", hdr) print(fold_list) trl = '#' * 90 Console.cprint("BLUE", "", trl) return dict_obj