# Copyright 2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit acct-user DESCRIPTION="Git repository hosting user" IUSE="gitea gitlab gitolite" REQUIRED_USE="^^ ( gitea gitlab gitolite )" ACCT_USER_ID=196 ACCT_USER_HOME_OWNER=git:git ACCT_USER_HOME_PERMS=750 ACCT_USER_SHELL=/bin/sh ACCT_USER_GROUPS=( git ) RDEPEND="acct-group/redis" acct-user_add_deps pkg_setup() { if use gitea; then ACCT_USER_HOME=/var/lib/gitea elif use gitlab; then ACCT_USER_HOME=/var/lib/gitlab ACCT_USER_GROUPS+=( redis ) elif use gitolite; then ACCT_USER_HOME=/var/lib/gitolite else die "Incorrect USE flag combination" fi } pkg_postinst() { acct-user_pkg_postinst elog "For GitLab the git user has to be unlocked but doesn't" elog "need a password as only ssh public key login is used." elog "Changing the password field of git in /etc/shadow:" if [ $(passwd -S git | cut -d" " -f2) == "P" ]; then eerror "Change canceled, because the git user has a real password." eerror "Run \"usermod -p '*' git\" to do the change manually." else usermod -p '*' git elog "Changed the password field from \"!\" to \"*\"." fi cat > ${ACCT_USER_HOME}/.profile <<- EOF # do not edit this file, it will be overwritten on update export LANG=en_US.UTF-8; export LC_ALL=en_US.UTF-8 rdoc_libs="\$(find /usr/lib64/ruby/ -regextype egrep -iregex '.*rdoc-.*/lib')" export RUBYLIB="\$(echo "\$rdoc_libs" | head -c -1 | tr '\n' ':')" EOF chown git:git ${ACCT_USER_HOME}/.profile }