#!/bin/sh # # Author: Yuri Konotopov # License: GNU GPL v3 or any later version # source /lib/gentoo/functions.sh set -eo pipefail VORTEX_CACHE_DIR="/var/cache/vortex-build" if [ "$EUID" -ne 0 ]; then exec sudo "${0}" "$@" fi MENUCONFIG=0 while [[ $# != 0 ]]; do case $1 in -m|--menuconfig) VORTEX_BUILD_DIR="$(mktemp -d)" VORTEX_CONFIG="vortex-$(date "+%s")" mkdir -p "${VORTEX_CACHE_DIR}" cp -r /usr/src/linux/. "${VORTEX_BUILD_DIR}" pushd "${VORTEX_BUILD_DIR}" > /dev/null make mrproper zcat /proc/config.gz > .config make menuconfig cp .config "${VORTEX_CACHE_DIR}/${VORTEX_CONFIG}" popd > /dev/null rm -r "${VORTEX_BUILD_DIR}" export VORTEX_MENUCONFIG="${VORTEX_CONFIG}" ;; --) shift; break;; *) ewarn Unknown option provided: "${1}" ;; esac shift done MODULES_DIR="/lib/modules/$(uname -r)" TIMESTAMP="$(date "+%s")" if test -e "${MODULES_DIR}"; then ebegin "Backing up ${MODULES_DIR}" mv "${MODULES_DIR}" "${MODULES_DIR}.${TIMESTAMP}" eend $? fi ebegin "Building kernel" emerge -1v gentoo-kernel eend $? ebegin "Rebuilding modules" if ! emerge @module-rebuild; then eend 1 if test -e "${MODULES_DIR}.${TIMESTAMP}"; then ebegin "Reverting backup ${MODULES_DIR}" mv "${MODULES_DIR}.${TIMESTAMP}" "${${MODULES_DIR}}" eend $? fi exit 1 fi if test -e "${MODULES_DIR}.${TIMESTAMP}"; then ebegin "Dropping modules backup ${MODULES_DIR}" rm -r "${MODULES_DIR}.${TIMESTAMP}" eend $? fi