colors = ['#e60004', '#009836', '#2e1d86', '#ffed00',
'#0068b5', '#f28e00', '#940084', '#97c000']
+
#
# This function adds a new file to 'filesdict', after checking its
# size. The 'filesdict' contain the relative path of the file as the
sz = os.stat(abspath).st_size
filesdict[relpath] = (pkg, sz)
+
#
# This function returns a dict where each key is the path of a file in
# the root filesystem, and the value is a tuple containing two
add_file(filesdict, fpath, fullpath, pkg)
return filesdict
+
#
# This function builds a dictionary that contains the name of a
# package as key, and the size of the files installed by this package
seeninodes.add(st.st_ino)
frelpath = os.path.relpath(fpath, os.path.join(builddir, "target"))
- if not frelpath in filesdict:
+ if frelpath not in filesdict:
print("WARNING: %s is not part of any package" % frelpath)
pkg = "unknown"
else:
return pkgsize
+
#
# Given a dict returned by build_package_size(), this function
# generates a pie chart of the size installed by each package.
plt.title("Total filesystem size: %d kB" % (total / 1000.), fontsize=10, y=.96)
plt.savefig(outputf)
+
#
# Generate a CSV file with statistics about the size of each file, its
# size contribution to the package and to the overall system.
for (pkg, size) in pkgsizes.items():
wr.writerow([pkg, size, "%.1f" % (float(size) / total * 100)])
+
parser = argparse.ArgumentParser(description='Draw size statistics graphs')
parser.add_argument("--builddir", '-i', metavar="BUILDDIR", required=True,