From d51b0249369a762f191e3c58454b4aeab55c220f Mon Sep 17 00:00:00 2001 From: Nemo Date: Thu, 7 Sep 2017 00:36:28 +0530 Subject: [PATCH] Removes old debian script --- compute_total_pkg_size.py | 105 -------------------------------------- 1 file changed, 105 deletions(-) delete mode 100755 compute_total_pkg_size.py diff --git a/compute_total_pkg_size.py b/compute_total_pkg_size.py deleted file mode 100755 index b89b8b6..0000000 --- a/compute_total_pkg_size.py +++ /dev/null @@ -1,105 +0,0 @@ -#!/usr/bin/env python -''' -http://ubuntuforums.org/showthread.php?t=1154940&highlight=get_dependencies -''' - -import sys -from subprocess import Popen,PIPE,STDOUT - - -__usage__=''' -compute_total_pkg_size.py emacs -''' - -pkg=sys.argv[1] - - -def report_lines(alist,max_len,vdiv,hline): - ''' - alist is a list of tuples - report_lines returns a list of strings - ''' - result=[] - svs=' '+vdiv+' ' - for row in alist: - if row[0]=='-': - line_string=hline - else: - data_justified=[str(elt).rjust(num) for elt,num in zip(row,max_len)] - data_svs=svs.join(data_justified) - line_list=[vdiv,data_svs,vdiv] - line_string=' '.join(line_list) - result.append(line_string) - return result - -def report_table(alist,corner='+',hdiv='-',vdiv='|',header=True): - max_len=max_col_len(alist) - hline_l=[corner, - corner.join([hdiv.ljust(max_num+2,hdiv) - for max_num in max_len]), - corner] - hline=''.join(hline_l) - result=report_lines(alist,max_len,vdiv,hline) - if header: - new_result=[hline,result[0],hline,] - new_result.extend(result[1:]) - else: - new_result=[hline,] - new_result.extend(result) - new_result.append(hline) - result='\n'.join(new_result)+'\n' - return result - -def max_col_len(alist): - return [max([len(str(elt)) for elt in column]) for column in zip(*alist)] - -def find_installed(): - ''' - Returns a list of all the packages installed on the computer - ''' - proc=Popen("dpkg --get-selections | awk '/install/{print $1}'", - shell=True, stdout=PIPE, stderr=open('/dev/null'),) - return proc.communicate()[0].split() - -def get_size(pkg): - ''' - Returns (download size, installed size) in KiB - ''' - cmd='apt-cache show %s'%pkg - proc=Popen(cmd, shell=True, stdout=PIPE, ) - size=0 - install_size=0 - for line in proc.communicate()[0].split('\n'): - if line.startswith('Size: '): - size=line.split()[-1] - elif line.startswith('Installed-Size: '): - install_size=line.split()[-1] - return (int(size)/1024,int(install_size)) - -def get_dependencies(pkg): - ''' - Returns all the (recursive) dependencies of a package - ''' - cmd='apt-rdepends -s=DEPENDS %s'%pkg - proc=Popen(cmd, shell=True, stdout=PIPE, ) - return proc.communicate()[0].strip().split('\n') - -deps=get_dependencies(pkg) -installed_packages=find_installed() -needed_packages=list(set(deps)-set(installed_packages)) -(sizes_dep,sizes_dep_installed)=zip(*[get_size(pkg) for pkg in deps]) -(sizes_needed,sizes_needed_installed)=zip(*[get_size(pkg) for pkg in needed_packages]) -data=[('Package (*=needed)','Download size (KiB)','Installed size (KiB)')] -for apkg,size,install_size in zip(deps,sizes_dep,sizes_dep_installed): - if apkg in needed_packages: - data.append(('%s *'%apkg,size,install_size)) - else: - data.append((apkg,size,install_size)) -print(report_table(data)) - -data=[('','Sizes (KiB)')] -data.append(('Total download size',sum(sizes_dep))) -data.append(('Total installed size',sum(sizes_dep_installed))) -data.append(('Total download size needed',sum(sizes_needed))) -data.append(('Total installed size needed',sum(sizes_needed_installed))) -print(report_table(data))