blob: d7660f72f6b924c6f26ad0d1e9d6f80f4aab2f4a [file] [log] [blame]
'''Utilities for installing os-level packages.'''
import collections
import enum
class Library(collections.namedtuple('Library', ['name', 'pkg_map'])):
def Install(self, configuration):
flavor = configuration.os_flavor()
install_cmd = ['sudo', *flavor.value, self.pkg_map[flavor]]
return configuration.Call(install_cmd, stderr=None, stdout=None)
class OsFlavor(enum.Enum):
Debian = ('apt-get', 'install')
Arch = ('pacman', '-S')
Nasm = Library('nasm', {
OsFlavor.Debian: 'nasm',
OsFlavor.Arch: 'nasm',
})
GccAarch64LinuxGNU = Library('gcc-aarch64-linux-gnu', {
OsFlavor.Debian: 'gcc-aarch64-linux-gnu',
OsFlavor.Arch: 'aarch64-linux-gnu-binutils',
})