Ejemplo n.º 1
0
def printtree(node, options, level):
	#if not dirfirst, combine lists
	#sort lists
	if options.depth >= 0 and level > options.depth:
		return
	combined = None
	if options.sortfirst:
		node.dirs.sort()
		node.files.sort()
		if options.dirfirst: combined = node.dirs+node.files
		else: combined = node.files+node.dirs
	else:
		if options.dirfirst: combined = node.dirs+node.files
		else: combined = node.files+node.dirs
		combined.sort()
	prefix = options.indent*level
	
	#{name} #{size} #{modtime} #{createtime}
	for item in combined:
		if options.minsize and (item.size < options.minsize): continue
		if options.maxsize and (item.size > options.maxsize): continue
		size = item.size if not options.human else size_to_human(item.size, round=options.rounding)
		if isinstance(item, Dir):
			#recurse
			if not options.nodirs:
				if options.dirnamebefore:
					LogUtil.printlog(options.dir.format(name=item.name, path=item.path, size=size, modtime=item.modtime,
						createtime=item.createtime, prefix=prefix))
			printtree(item, options, level+1)
			if not options.nodirs:
				if not options.dirnamebefore:
					LogUtil.printlog(options.dir.format(name=item.name, path=item.path, size=size, modtime=item.modtime,
						createtime=item.createtime, prefix=prefix))
		else:
			if not options.nofiles:
				#print stats
				LogUtil.printlog(options.file.format(name=item.name, path=item.parent.path, size=size, modtime=item.modtime,
					createtime=item.createtime, prefix=prefix))
Ejemplo n.º 2
0
for path in paths:
	drive, rest = splitdrive(path)
	drive = drives[drive.upper()]
	drive.stats = True
	progress = None
	if options.progress:
		#allow progress
		if not rest.lstrip("/\\"):
			widgets = ["Reading %s" % drive.letter, Percentage(), ' ', Bar(left="[", right="]"), ' ', ETA()]
			progress = ProgressWrapper(ProgressBar(term_width=consolesize, widgets=widgets, maxval=drive.totalsize-drive.free).start())
		else:
			widgets = ["Reading %s " % drive.letter, AnimatedMarker(), ' ', Timer()]
			progress = ProgressWrapper(ProgressBar(term_width=consolesize, widgets=widgets, maxval=drive.totalsize-drive.free).start())
	start(path, drive, progress)
	if progress: progress.finish()
	
#do final printing stuff here I guess
for drive in sorted(drives.keys()):
	if drives[drive].stats:
		d = drives[drive]
		#{name}{letter}{fs}{free}{totalsize}{serial}{type}{stats}{size}
		size = d.size if not options.human else size_to_human(d.size)
		if options.drivehead:
			LogUtil.printlog(options.drivehead.format(name=d.name, letter=d.letter, fs=d.fs, free=d.free, totalsize=d.totalsize,
				serial=d.serial, type=d.type, stats=d.stats, size=size, totaldirs=d.totaldirs, totalfiles=d.totalfiles))
		printtree(d, options, 0)
		if options.drivefoot:
			LogUtil.printlog(options.drivefoot.format(name=d.name, letter=d.letter, fs=d.fs, free=d.free, totalsize=d.totalsize,
				serial=d.serial, type=d.type, stats=d.stats, size=size, totaldirs=d.totaldirs, totalfiles=d.totalfiles))