scripts/src/ebuild-activate

120 lines
2.5 KiB
Bash

#!/bin/sh
# This file is part of scripts.
# scripts is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3.
# scripts is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with scripts. If not, see <https://www.gnu.org/licenses/>.
# Original author: Maciej Barć <xgqt@riseup.net>
# Copyright (c) 2021, src_prepare group
# Licensed under the GNU GPL v3 License
# Exit if script is not sourced
case ${-}
in
*i* )
:
;;
* )
printf "%s\n" "Run: source ${0}" \
">>> Exiting the shell" \
>> /dev/stderr
exit 1
;;
esac
# Internal
_timest="$(date +%Y-%m-%d_%H:%M:%S || echo 'null')"
_tmpdir='/tmp/edev'
_toplevel="$(git rev-parse --show-toplevel || echo '/dev/null')"
# Mark time when user entered environment for given repository
if mkdir -p "${_tmpdir}"
then
if cd "${_tmpdir}"
then
ln -fs "${_toplevel}" "${_timest}"
cd - ||
echo 'Bug?'
fi
fi
# Set variables for ebuild development
ACCEPT_LICENSE='*'
export ACCEPT_LICENSE
if type lz4 >/dev/null
then
BINPKG_COMPRESS='lz4'
export BINPKG_COMPRESS
fi
if mkdir -p "${_tmpdir}/dist"
then
DISTDIR="${_tmpdir}/dist"
export DISTDIR
fi
GENTOO_MIRRORS=''
export GENTOO_MIRRORS
INSTALL_MASK=''
export INSTALL_MASK
if mkdir -p "${_tmpdir}/elog"
then
PORTAGE_ELOG_CLASSES='warn error log'
export PORTAGE_ELOG_CLASSES
PORTAGE_ELOG_SYSTEM='save'
export PORTAGE_ELOG_SYSTEM
PORTAGE_LOGDIR="${_tmpdir}/elog"
export PORTAGE_LOGDIR
fi
if [ -e "${_toplevel}/profiles/repo_name" ]
then
PORTDIR="${_toplevel}"
export PORTDIR
fi
PS1="(ebuild) ${PS1}"
# Some helpful aliases
alias cd-edev='cd ${_tmpdir}'
alias cd-repo='cd ${_toplevel}'
alias cd-dist='cd ${DISTDIR}'
alias cd-elog='cd ${PORTAGE_LOGDIR}'
alias clean-edev='rm -r ${_tmpdir}'
alias clean-dist='rm -r ${DISTDIR}'
alias clean-elog='rm -r ${PORTAGE_LOGDIR}'
alias ls-edev='ls -ahl ${_tmpdir}'
alias ls-repo='ls -ahl ${_toplevel}'
alias ls-dist='ls -ahl ${DISTDIR}'
alias ls-elog='ls -ahl ${PORTAGE_LOGDIR}'
clear
echo ">>> Entering Ebuild development environment"