Skip to content

Commit

Permalink
feat: Add MR_USER_BASE environment variable to override system-wide d…
Browse files Browse the repository at this point in the history
…efault for runners' local users base directory
  • Loading branch information
vbem committed Jun 8, 2024
1 parent 3394733 commit 95b39d0
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions mr.bash
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ declare -rg MR_GIHUB_BASEURL="${MR_GIHUB_BASEURL:-https://github.com}"
# runners' local username prefix, defaults to `runner-`
declare -rg MR_USER_PREFIX="${MR_USER_PREFIX:-runner-}"
# runners' local users base directory, overrides the `HOME` setting in `/etc/default/useradd`
declare -rg MR_USER_BASE="${MR_USER_BASE:-$(useradd -D | grep '^HOME=' | cut -d= -f2-)}"
declare -rg MR_USER_BASE
# URL of this application
declare -rg MR_URL='https://github.com/vbem/multi-runners'

Expand Down Expand Up @@ -152,10 +152,12 @@ function mr::addUser {
id -u "$user" &>/dev/null || break
done
fi
useraddArgs=(-m -s /bin/bash -G 'runners,docker')
[[ -n "$MR_USER_BASE" ]] && useraddArgs+=('-b' "$MR_USER_BASE")
run::logFailed sudo tee /etc/sudoers.d/runners <<<'%runners ALL=(ALL) NOPASSWD:ALL' >/dev/null \
&& run::logFailed sudo groupadd -f 'runners' >&2 \
&& run::logFailed sudo groupadd -f 'docker' >&2 \
&& run::log sudo useradd -b "$MR_USER_BASE" -m -s /bin/bash -G 'runners,docker' "$user" >&2 || return $?
&& run::log sudo useradd "${useraddArgs[@]}" "$user" >&2 || return $?
echo "$user"
}

Expand Down Expand Up @@ -320,7 +322,7 @@ Environment variables:
MR_GIHUB_BASEURL=$MR_GIHUB_BASEURL
MR_GIHUB_API_BASEURL=$MR_GIHUB_API_BASEURL
MR_RELEASE_URL=${MR_RELEASE_URL:-<latest on github.com/actions/runner/releases>}
MR_USER_BASE=$MR_USER_BASE
MR_USER_BASE=${MR_USER_BASE:-<default in /etc/default/useradd>}
MR_GITHUB_PAT=${MR_GITHUB_PAT::11}${MR_GITHUB_PAT:+***}
Sub-commands:
Expand Down

0 comments on commit 95b39d0

Please sign in to comment.