Project

General

Profile

Download (1.42 KB) Statistics
| Branch: | Tag: | Revision:
#!/usr/bin/python3
import copy
from distutils.version import LooseVersion
import sys

import apt

# List of "additional" packages to install
ADDTIONAL_PACKAGES = [
'htop',
'iotop',
'vim',
'openssh-server',
'build-essential']

def main():
# Create cache
cache = apt.Cache()
cache.open()
in_packages = copy.copy(ADDTIONAL_PACKAGES)
packages = set()
package_deps = {}

while True:
try:
# Grab next package
pkg_name = in_packages.pop()
print('Package: {:s}'.format(pkg_name))
# Add this package (with version) to the list of packages
if pkg_name not in packages:
packages.add(pkg_name)
try:
package_deps[pkg_name] = cache[pkg_name].versions[0].dependencies
except KeyError:
continue
for pdep in package_deps[pkg_name]:
dep_name = pdep[0].name
print('\tDependency: {:s}'.format(dep_name))
if dep_name not in packages:
packages.add(dep_name)
in_packages.insert(0, dep_name)
except IndexError:
break

print('\n\n')
for package in packages:
print(package)
print('\n\n')
if __name__ == '__main__':
sys.exit(main())
    (1-1/1)