This function generates the portion of the output for one directory subtree.
# - - - r e p o r t - - - def report ( dirName ): """Generate the report for one directory subtree. [ dirName is a string -> sys.stdout +:= a report listing the files below directory (dirName), with files in ascending order by pathname ] """
At this level, the logic is broken into three steps:
write the report header; instantiate a
LinkReport object containing information on all
the links in the subtree; and call the
LinkReport.genLinks() method to generate the
lines of the report.
#-- 1 -- # [ basePath := dirName's absolute path name # sys.stdout +:= report heading showing dirName's real # absolute path ] basePath = os.path.abspath ( dirName ) print "\n === %s ===" % os.path.realpath ( dirName )
basePath is the path to the root
directory of the subtree, so it will be a prefix to every
pathname under it. The report will remove this prefix,
showing each link's path name relative to
basePath. For details of the report format, see
Section 5, “
softlinks.py: Find soft links in a directory tree”.
#-- 2 -- # [ linkReport := a LinkReport instance describing all the # accessible soft links in directory tree (basePath) ] linkReport = LinkReport ( basePath )
LinkReport instance is basically a
LinkInfo instances. The
LinkReport.genLinks() method generates
LinkInfo instances in sorted order.
Formatting the report is handled by the
.__str__() special method in the
#-- 3 -- # [ linkReport is a LinkReport instance -> # sys.stdout +:= lines describing links in linkReport # in ascending order by path name ] for linkInfo in linkReport.genLinks(): print linkInfo