Bug 1275437 - Added methods for interacting with pacman. r=gps

These new convenience methods let the bootstrapper update the local package list, upgrade all installed packages, and install new packages.

MozReview-Commit-ID: KZPyBl0OU6Z

--HG--
extra : rebase_source : 6a345b5e0cce7c0095dc1213d6609c1ca6a58920
This commit is contained in:
Nathan Hakkakzadeh 2016-05-26 09:50:02 -07:00
parent 7bfde45213
commit a1591449e7

View File

@ -3,6 +3,8 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
import os
import sys
import subprocess
from mozboot.base import BaseBootstrapper
@ -16,3 +18,22 @@ class WindowsBootstrapper(BaseBootstrapper):
BaseBootstrapper.__init__(self, **kwargs)
raise NotImplementedError('Bootstrap support is not yet available for Windows. '
'For now, use MozillaBuild to set up a build environment on Windows.')
def run(self, command):
subprocess.check_call(command, stdin=sys.stdin)
def pacman_update(self):
command = ['pacman', '--sync', '--refresh']
self.run(command)
def pacman_upgrade(self):
command = ['pacman', '--sync', '--refresh', '--sysupgrade']
self.run(command)
def pacman_install(self, *packages):
command = ['pacman', '--sync', '--needed']
if self.no_interactive:
command.append('--noconfirm')
command.extend(packages)
self.run(command)