Enable GitLab CI/CD
Run shellcheck on scripts [skip ci]
This commit is contained in:
37
src/check-commit
Executable file
37
src/check-commit
Executable file
@ -0,0 +1,37 @@
|
||||
#!/bin/sh
|
||||
|
||||
|
||||
# CI Ebuild commit tester
|
||||
# Run this in a overlay directory.
|
||||
# This script uses pkgcheck and repoman
|
||||
# to check the latest commit for QA issues.
|
||||
|
||||
|
||||
# Check if we are in a git repo
|
||||
if ! git status >/dev/null; then
|
||||
echo Stop
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
# Variables needed for tools
|
||||
[ -z "${ARCH}" ] && export ARCH=x86_64
|
||||
[ -z "${ACCEPT_KEYWORDS}" ] && export ACCEPT_KEYWORDS='**'
|
||||
|
||||
|
||||
# Use pkgchek
|
||||
pkgcheck scan --commits
|
||||
|
||||
# Iterate through changed files in last commit
|
||||
# For each of these use dirname to change directory
|
||||
# to the one where the changed file resides
|
||||
# and run repoman in there
|
||||
for file in $(git diff --name-only HEAD HEAD~1)
|
||||
do
|
||||
if cd $(dirname "${file}"); then
|
||||
echo
|
||||
echo "Directory $(pwd):"
|
||||
repoman -Idix
|
||||
cd - >/dev/null
|
||||
fi
|
||||
done
|
190
src/eprefix-activate
Normal file
190
src/eprefix-activate
Normal file
@ -0,0 +1,190 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
|
||||
# Source this to enter the Eprefix environment
|
||||
# Like this for example:
|
||||
# $ source $HOME/gentoo/eprefix-activate
|
||||
|
||||
|
||||
# >>> Set eprefix
|
||||
|
||||
EPREFIX=${EPREFIX:-${HOME}/gentoo}
|
||||
export EPREFIX
|
||||
|
||||
|
||||
# >>> Funcion definitions
|
||||
|
||||
command_exists() {
|
||||
if command -v "$1" >/dev/null
|
||||
then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
if command_exists tput
|
||||
then
|
||||
eprefix_good="$(tput bold)$(tput setaf 2)*$(tput sgr0)"
|
||||
eprefix_bad="$(tput bold)$(tput setaf 1)*$(tput sgr0)"
|
||||
eprefix_warn="$(tput bold)$(tput setaf 3)*$(tput sgr0)"
|
||||
else
|
||||
eprefix_good="*"
|
||||
eprefix_bad="*"
|
||||
eprefix_warn="*"
|
||||
fi
|
||||
|
||||
eprefix_addpath() {
|
||||
if [ -d "${1}" ]
|
||||
then
|
||||
PATH=${1}:${PATH}
|
||||
export PATH
|
||||
else
|
||||
echo "${eprefix_warn} ${1} not found"
|
||||
fi
|
||||
}
|
||||
|
||||
eprefix_addman() {
|
||||
if [ -d "${1}" ]
|
||||
then
|
||||
MANPATH=${1}:${MANPATH}
|
||||
export MANPATH
|
||||
else
|
||||
echo "${eprefix_warn} ${1} not found"
|
||||
fi
|
||||
}
|
||||
|
||||
eprefix_packages() {
|
||||
if [ -d "${EPREFIX}/var/db/pkg" ]
|
||||
then
|
||||
find "${EPREFIX}"/var/db/pkg/*/* -type d | wc -l
|
||||
fi
|
||||
}
|
||||
|
||||
eprefix_world() {
|
||||
if [ -f "${EPREFIX}/var/lib/portage/world" ]
|
||||
then
|
||||
wc -l < "${EPREFIX}/var/lib/portage/world"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# >>> Checks
|
||||
|
||||
# Exit if eprefix does not exist
|
||||
if [ ! -d "${EPREFIX}" ]
|
||||
then
|
||||
echo "${eprefix_bad} No ${EPREFIX} found!"
|
||||
echo ">>> Exiting..."
|
||||
sleep 3
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
# >>> PATH setup
|
||||
|
||||
# Add directories to PATH
|
||||
eprefix_addpath "${EPREFIX}/bin"
|
||||
eprefix_addpath "${EPREFIX}/opt/bin"
|
||||
eprefix_addpath "${EPREFIX}/sbin"
|
||||
eprefix_addpath "${EPREFIX}/tmp/bin"
|
||||
eprefix_addpath "${EPREFIX}/tmp/usr/bin"
|
||||
eprefix_addpath "${EPREFIX}/usr/bin"
|
||||
eprefix_addpath "${EPREFIX}/usr/local/bin"
|
||||
eprefix_addpath "${EPREFIX}/usr/local/sbin"
|
||||
eprefix_addpath "${EPREFIX}/usr/sbin"
|
||||
|
||||
# Add manpages
|
||||
eprefix_addman "${EPREFIX}/usr/local/share/man"
|
||||
eprefix_addman "${EPREFIX}/usr/share/binutils-data/x86_64-pc-linux-gnu/2.34/man"
|
||||
eprefix_addman "${EPREFIX}/usr/share/man"
|
||||
|
||||
|
||||
# >>> General env setup
|
||||
|
||||
# Process .sh files
|
||||
for sh in "${EPREFIX}"/etc/profile.d/*.sh
|
||||
do
|
||||
[ -r "$sh" ] && . "$sh"
|
||||
done
|
||||
unset sh
|
||||
|
||||
# Set Portage shell
|
||||
CONFIG_SHELL="${EPREFIX}/bin/bash"
|
||||
export CONFIG_SHELL
|
||||
|
||||
# Misc env vars
|
||||
CONFIG_PROTECT_MASK="${CONFIG_PROTECT_MASK} ${EPREFIX}/etc/sandbox.d ${EPREFIX}/etc/gentoo-release ${EPREFIX}/etc/terminfo ${EPREFIX}/etc/ca-certificates.conf"
|
||||
GCC_SPECS=""
|
||||
LANG="en_US.utf8"
|
||||
export CONFIG_PROTECT_MASK
|
||||
export GCC_SPECS
|
||||
export LANG
|
||||
|
||||
# Set umask
|
||||
umask 022
|
||||
|
||||
|
||||
# >>> Use Eprefix's tools
|
||||
|
||||
# We just use "which" because we put Eprefix's PATHs first
|
||||
# before the system ones
|
||||
EDITOR="$(command -v nano)"
|
||||
PAGER="$(command -v less)"
|
||||
export EDITOR
|
||||
export PAGER
|
||||
|
||||
|
||||
# >>> Emerge options
|
||||
|
||||
# Sandbox does not work well on Prefix
|
||||
# Bug: 490246
|
||||
FEATURES="${FEATURES} -usersandbox -sandbox"
|
||||
export FEATURES
|
||||
|
||||
# Check if we are on a prefix profile
|
||||
echo ""
|
||||
if command_exists eselect
|
||||
then
|
||||
eprofile="$(eselect profile show)"
|
||||
|
||||
if [[ "${eprofile}" == *prefix* ]]
|
||||
then
|
||||
echo "${eprefix_good} ${eprofile}"
|
||||
else
|
||||
echo "${eprefix_bad} You are not on a prefix profile"
|
||||
fi
|
||||
|
||||
unset eprofile
|
||||
else
|
||||
echo "${eprefix_bad} Could not determine running profile"
|
||||
fi
|
||||
|
||||
|
||||
# >>> Finish
|
||||
|
||||
echo ""
|
||||
echo ">>> Sourced the eprefix script"
|
||||
echo ""
|
||||
echo "${eprefix_good} Prefix: ${EPREFIX}"
|
||||
echo "${eprefix_good} Packages: $(eprefix_packages)"
|
||||
echo "${eprefix_good} In World: $(eprefix_world)"
|
||||
echo "${eprefix_good} Have fun! ;-)"
|
||||
|
||||
|
||||
if command_exists emerge
|
||||
then
|
||||
echo ""
|
||||
echo ">>> Environment ready"
|
||||
else
|
||||
echo ""
|
||||
echo "${eprefix_bad} Could not locate emerge"
|
||||
echo "${eprefix_bad} Environment may be broken"
|
||||
echo ">>> Continuing anyway..."
|
||||
fi
|
||||
|
||||
|
||||
# >>> Cleanup
|
||||
unset eprefix_good
|
||||
unset eprefix_bad
|
||||
unset eprefix_warn
|
Reference in New Issue
Block a user