blob: 59332dded89a51c80a7a0c0d6017b0f03dcfc4e7 [file] [log] [blame]
# -*-coding: utf-8 -*-
"""Module containing shared helper methods."""
import subprocess
class CommonException(Exception):
"""Exception raised from common."""
def get_stable_branch(kernel):
"""Returns stable branch name."""
branch = kernel[1:]
return f'linux-{branch}.y'
def get_cros_branch(kernel):
"""Returns chromeos branch name."""
branch = kernel[1:]
return f'chromeos-{branch}'
def checkout_branch(kernel, branch, remote, remote_branch, kernel_path):
"""Checks into appropriate branch and keeps it up to date."""
do_checkout(kernel, branch, kernel_path)
do_pull(kernel, remote, remote_branch, kernel_path)
def do_checkout(kernel, branch, kernel_path):
"""Checks into given branch."""
try:
subprocess.check_call(['git', 'checkout', branch], stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL, cwd=kernel_path)
except subprocess.CalledProcessError:
raise CommonException('Checkout failed for %s' % kernel)
def do_pull(kernel, remote, remote_branch, kernel_path):
"""Pulls from given branch."""
try:
subprocess.check_call(['git', 'pull', remote, remote_branch],
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL,
cwd=kernel_path)
except subprocess.CalledProcessError:
raise CommonException('Pull failed for %s' % kernel)