def print_banner(bootstrap, no_shell_file): """Print the Pigweed or project-specific banner""" enable_colors() print(Color.green('\n WELCOME TO...')) print(Color.magenta(_PIGWEED_BANNER)) if bootstrap: print( Color.green('\n BOOTSTRAP! Bootstrap may take a few minutes; ' 'please be patient')) print( Color.green( ' On Windows, this stage is extremely slow (~10 minutes).\n')) else: print( Color.green( '\n ACTIVATOR! This sets your console environment variables.\n' )) if no_shell_file: print(Color.bold_red('Error!\n')) print( Color.red(' Your Pigweed environment does not seem to be' ' configured.')) print(Color.red(' Run bootstrap.bat to perform initial setup.')) return 0
def main(): """Script entry point.""" if os.name != 'nt': return 1 parser = argparse.ArgumentParser() parser.add_argument('--bootstrap', action='store_true') parser.add_argument('--no-shell-file', action='store_true') args = parser.parse_args() enable_colors() print(Color.green('\n WELCOME TO...')) print(Color.magenta(_PIGWEED_BANNER)) if args.bootstrap: print( Color.green('\n BOOTSTRAP! Bootstrap may take a few minutes; ' 'please be patient')) print( Color.green( ' On Windows, this stage is extremely slow (~10 minutes).\n')) else: print( Color.green( '\n ACTIVATOR! This sets your console environment variables.\n' )) if args.no_shell_file: print(Color.bold_red('Error!\n')) print( Color.red(' Your Pigweed environment does not seem to be' ' configured.')) print(Color.red(' Run bootstrap.bat to perform initial setup.')) return 0
def output(self, level=0): if level == 0: ll = self.get_list() self.len_name = 10 + max( len(os.path.basename(n['name'])) for n in ll) self.set_len_name(self.len_name) color = Color(not self.settings['nocolor']) if self.settings['view'] == 'list': l = self.get_list() h_line = '|' + ('=' * (35)) + '|' style = '| {0:13} | {1:7} | {2:7} |' if len(l) > 0: l = sorted(l, key=operator.itemgetter(self.settings['sort'])) len_name = max(len(n['name']) for n in l) len_size = max(max(len(str(n['size'])) for n in l), 11) h_line = '|' + ('=' * (len_name + len_size + 19)) + '|' style = '| {0:' + str( len_name) + '} | {1!s:>11} | {2!s:>' + str( len_size) + '} |' print(h_line) print(style.format('name', 'lines', 'size')) print(h_line) for f in l: print(style.format(f['name'], str(f['line']), str(f['size']))) print(h_line) elif self.settings['view'] == 'tree': self.sort(self.settings) shift = ' ' * level if level == 0: print('\n' + self.name) for d in self.list_folders: msg = shift + color.green() + '+- ' + color.blue( ) + os.path.basename(d.name) + color.end() if self.settings['folder'] == 'local': (n, files, dirs, lines, size) = d.get() msg += ' ({0} files, {1} folders, {2} lines, {3})'.format( files, dirs, str(lines), str(size)) if self.settings['folder'] == 'global': (n, files, dirs, lines, size) = d.get_g() msg += ' ({0} files, {1} folders, {2} lines, {3})'.format( files, dirs, str(lines), str(size)) if self.settings['folder'] == 'both': (n1, f1, d1, l1, s1) = d.get() (n2, f2, d2, l2, s2) = d.get_g() msg += ' ({0} + {1} = {2} files, {3} + {4} = {5} folders, {6} + {7} = {8} lines, {9} + {10} = {11})'.format( f1, f2, f1 + f2, d1, d2, d1 + d2, str(l1), str(l2), str(l1 + l2), str(s1), str(s2), str(s1 + s2)) print(msg) d.output(level + 1) if len(self.list_files ) > 0 and self.settings['hide_files'] == False: for f in self.list_files: msg = '{0:' + str( self.len_name ) + '} ({1:>8} lines, {2:>10})' + color.end() print( msg.format( shift + color.green() + '+-' + color.end() + os.path.basename(f.name) + color.gray(), str(f.line), str(f.size))) ### stats if level == 0: if self.settings['stats'] in ['short', 'all']: (n, f, d, l, s) = self.total() print('\nstatistics:') print('\tfolders : ' + str(d)) print('\tfiles : ' + str(f)) print('\tlines : ' + str(l)) print('\tsize : ' + str(s)) if self.settings['stats'] == 'all': le = self.get_dict() print('\nby extention:') for e in le: print("{0!s:>8}".format(e['ext']) + ' : ' + "{0!s:>10}".format(str(e['files'])) + ' files; ' + "{0!s:>12}".format(str(e['lines'])) + ' lines ' + "{0!s:>12}".format(str(e['size'])))
def output(self, level = 0): if level == 0: ll = self.get_list() self.len_name = 10 + max(len(os.path.basename(n['name'])) for n in ll) self.set_len_name(self.len_name) color = Color(not self.settings['nocolor']) if self.settings['view'] == 'list': l = self.get_list() h_line = '|' + ('=' * (35)) + '|' style = '| {0:13} | {1:7} | {2:7} |' if len(l) > 0: l = sorted(l, key=operator.itemgetter(self.settings['sort'])) len_name = max(len(n['name']) for n in l) len_size = max(max(len(str(n['size'])) for n in l), 11) h_line = '|' + ('=' * (len_name + len_size + 19)) + '|' style = '| {0:' + str(len_name) + '} | {1!s:>11} | {2!s:>' + str(len_size) + '} |' print (h_line) print (style.format('name', 'lines', 'size')) print (h_line) for f in l: print (style.format(f['name'], str(f['line']), str(f['size']))) print (h_line) elif self.settings['view'] == 'tree': self.sort(self.settings) shift = ' ' * level if level == 0: print ('\n' + self.name) for d in self.list_folders: msg = shift + color.green() + '+- ' + color.blue() + os.path.basename(d.name) + color.end() if self.settings['folder'] == 'local': (n, files, dirs, lines, size ) = d.get() msg += ' ({0} files, {1} folders, {2} lines, {3})'.format(files, dirs, str(lines), str(size)) if self.settings['folder'] == 'global': (n, files, dirs, lines, size ) = d.get_g() msg += ' ({0} files, {1} folders, {2} lines, {3})'.format(files, dirs, str(lines), str(size)) if self.settings['folder'] == 'both': (n1, f1, d1, l1, s1 ) = d.get() (n2, f2, d2, l2, s2 ) = d.get_g() msg += ' ({0} + {1} = {2} files, {3} + {4} = {5} folders, {6} + {7} = {8} lines, {9} + {10} = {11})'.format(f1, f2, f1 + f2, d1, d2, d1 + d2, str(l1), str(l2), str(l1 + l2), str(s1), str(s2), str(s1 + s2)) print (msg) d.output(level+1) if len(self.list_files) > 0 and self.settings['hide_files'] == False: for f in self.list_files: msg = '{0:' + str(self.len_name) + '} ({1:>8} lines, {2:>10})' + color.end() print (msg.format(shift + color.green() + '+-' + color.end() + os.path.basename(f.name) + color.gray(), str(f.line), str(f.size))) ### stats if level == 0: if self.settings['stats'] in ['short', 'all']: (n, f, d, l, s) = self.total() print ('\nstatistics:') print ('\tfolders : '+ str(d)) print ('\tfiles : '+ str(f)) print ('\tlines : '+ str(l)) print ('\tsize : '+ str(s)) if self.settings['stats'] == 'all': le = self.get_dict() print ('\nby extention:') for e in le: print ("{0!s:>8}".format(e['ext']) + ' : ' + "{0!s:>10}".format(str(e['files'])) + ' files; ' + "{0!s:>12}".format(str(e['lines'])) + ' lines ' + "{0!s:>12}".format(str(e['size'])))