()
| 40 | |
| 41 | |
| 42 | def getpackages(): |
| 43 | debian = 'https://ftp.debian.org/debian/' |
| 44 | |
| 45 | data = ftp_get(debian + 'ls-lR.gz') |
| 46 | if data is None: |
| 47 | print('Failed to fetch ls-lR.gz') |
| 48 | sys.exit(1) |
| 49 | |
| 50 | lines = gzip.decompress(data).decode('utf-8', errors='replace').splitlines() |
| 51 | |
| 52 | # Example content in ls-lR: |
| 53 | #./pool/main/0/0xffff: |
| 54 | #total 1452 |
| 55 | #-rw-r--r-- 2 dak debadmin 6524 Dec 25 2016 0xffff_0.7-2.debian.tar.xz |
| 56 | #-rw-r--r-- 2 dak debadmin 1791 Dec 25 2016 0xffff_0.7-2.dsc |
| 57 | #-rw-r--r-- 2 dak debadmin 57168 Dec 25 2016 0xffff_0.7-2_amd64.deb |
| 58 | #-rw-r--r-- 2 dak debadmin 48578 Dec 26 2016 0xffff_0.7-2_arm64.deb |
| 59 | #-rw-r--r-- 2 dak debadmin 56730 Dec 26 2016 0xffff_0.7-2_armel.deb |
| 60 | #-rw-r--r-- 2 dak debadmin 57296 Dec 26 2016 0xffff_0.7-2_armhf.deb |
| 61 | #-rw-r--r-- 2 dak debadmin 60254 Dec 26 2016 0xffff_0.7-2_i386.deb |
| 62 | #-rw-r--r-- 2 dak debadmin 53130 Dec 26 2016 0xffff_0.7-2_mips.deb |
| 63 | #-rw-r--r-- 2 dak debadmin 52542 Dec 26 2016 0xffff_0.7-2_mips64el.deb |
| 64 | #-rw-r--r-- 2 dak debadmin 53712 Dec 26 2016 0xffff_0.7-2_mipsel.deb |
| 65 | #-rw-r--r-- 2 dak debadmin 51908 Dec 26 2016 0xffff_0.7-2_ppc64el.deb |
| 66 | #-rw-r--r-- 2 dak debadmin 53548 Dec 26 2016 0xffff_0.7-2_s390x.deb |
| 67 | #-rw-r--r-- 2 dak debadmin 65248 Dec 25 2016 0xffff_0.7.orig.tar.gz |
| 68 | #-rw-r--r-- 2 dak debadmin 6884 Jul 19 19:08 0xffff_0.8-1.debian.tar.xz |
| 69 | #-rw-r--r-- 2 dak debadmin 1807 Jul 19 19:08 0xffff_0.8-1.dsc |
| 70 | #-rw-r--r-- 2 dak debadmin 58908 Jul 19 19:08 0xffff_0.8-1_amd64.deb |
| 71 | #-rw-r--r-- 2 dak debadmin 51340 Jul 19 19:58 0xffff_0.8-1_arm64.deb |
| 72 | #-rw-r--r-- 2 dak debadmin 57612 Jul 19 20:13 0xffff_0.8-1_armel.deb |
| 73 | #-rw-r--r-- 2 dak debadmin 58584 Jul 19 19:58 0xffff_0.8-1_armhf.deb |
| 74 | #-rw-r--r-- 2 dak debadmin 57544 Jul 19 20:23 0xffff_0.8-1_hurd-i386.deb |
| 75 | #-rw-r--r-- 2 dak debadmin 62048 Jul 19 23:54 0xffff_0.8-1_i386.deb |
| 76 | #-rw-r--r-- 2 dak debadmin 55080 Jul 23 19:07 0xffff_0.8-1_kfreebsd-amd64.deb |
| 77 | #-rw-r--r-- 2 dak debadmin 58392 Jul 23 19:07 0xffff_0.8-1_kfreebsd-i386.deb |
| 78 | #-rw-r--r-- 2 dak debadmin 54144 Jul 19 22:28 0xffff_0.8-1_mips.deb |
| 79 | #-rw-r--r-- 2 dak debadmin 53648 Jul 20 00:56 0xffff_0.8-1_mips64el.deb |
| 80 | #-rw-r--r-- 2 dak debadmin 54740 Jul 19 22:58 0xffff_0.8-1_mipsel.deb |
| 81 | #-rw-r--r-- 2 dak debadmin 57424 Jul 19 19:58 0xffff_0.8-1_ppc64el.deb |
| 82 | #-rw-r--r-- 2 dak debadmin 53764 Jul 19 22:28 0xffff_0.8-1_s390x.deb |
| 83 | #-rw-r--r-- 2 dak debadmin 64504 Jul 19 19:08 0xffff_0.8.orig.tar.gz |
| 84 | # |
| 85 | |
| 86 | path = None |
| 87 | previous_path = '' |
| 88 | archives = [] |
| 89 | filename = None |
| 90 | filenames = [] |
| 91 | for line in lines: |
| 92 | line = line.strip() |
| 93 | if len(line) < 4: |
| 94 | if filename: |
| 95 | res1 = re.match(r'(.*)-[0-9.]+$', path) |
| 96 | if res1 is None: |
| 97 | res1 = re.match(r'(.*)[-.][0-9.]+$', path) |
| 98 | res2 = re.match(r'(.*)-[0-9.]+$', previous_path) |
| 99 | if res2 is None: |
no test coverage detected