代码拉取完成,页面将自动刷新
#!/bin/bash
set -eux
# borrowed from https://github.com/JAremko/docker-emacs
## Create(if needed) this user and run command as the user:
# ENV UNAME="emacser" \
# GNAME="emacs" \
# UHOME="/home/emacs" \
# UID="1000" \
# GID="1000" \
# WORKSPACE="/mnt/workspace" \
# SHELL="/bin/bash"
## NOTE: ^^^^ Those are default values only in docker-emacs
## NOTE: The user will have "no password" sudo privilege
## Create user if it doesn't exists
if ! id "${UNAME}" >/dev/null 2>&1; then
## Prepend the user to /etc/passwd to ensure that it will
## override already existing users with the same IDs
echo -e "${UNAME}:x:${EMACS_UID}:${EMACS_GID}:${UNAME},,,:${UHOME}:${SHELL}\\n$(cat /etc/passwd)" > /etc/passwd
echo "${UNAME}::17032:0:99999:7:::" >> /etc/shadow
fi
## Make sure that user is sudoer (if sudo is present)
if [[ -d "/etc/sudoers.d" ]] && [[ ! -f "/etc/sudoers.d/${UNAME}" ]]; then
echo "${UNAME} ALL=(ALL) NOPASSWD: ALL" > "/etc/sudoers.d/${UNAME}"
chmod 0440 "/etc/sudoers.d/${UNAME}"
fi
## Create user's group if it doesn't exists
set +e
u_group=$(grep -E -i "^${GNAME}" /etc/group)
if [ $? -ne 0 ]; then
echo "${GNAME}:x:${EMACS_GID}:${UNAME}" >> /etc/group
elif [[ ${u_group} != *"${UNAME}"* ]]; then
sed -i -e "s/${u_group}/${u_group},${UNAME}/g" /etc/group
fi
set -e
# no harm in doing it every time? should be idempotent and shouldn't mess permissions because it's special emacs home dir
mkdir -p "${UHOME}"
chown "${EMACS_UID}":"${EMACS_GID}" "${UHOME}"
function check_permissions {
find "$UHOME" -not -user "$EMACS_UID" -or -not -group "$EMACS_GID"
}
count=$(check_permissions | wc -l)
if [ "$count" -ne 0 ]; then
echo "WARNING: some files have wrong permissions"
check_permissions
fi
mkdir -p "${WORKSPACE}"
chown "${EMACS_UID}":"${EMACS_GID}" "${WORKSPACE}"
cd "${WORKSPACE}"
su-exec "${UNAME}" "$@"
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。