Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
* fix issue siyuan-note#12657

* fix issue siyuan-note#12657
  • Loading branch information
redjumper authored Sep 30, 2024
1 parent 56ee07f commit 4ef5d90
Showing 1 changed file with 18 additions and 6 deletions.
24 changes: 18 additions & 6 deletions kernel/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ PUID=${PUID:-1000}
PGID=${PGID:-1000}
USER_NAME=${USER_NAME:-siyuan}
GROUP_NAME=${GROUP_NAME:-siyuan}
WORKSPACE_DIR="/siyuan/workspace"

# Get or create group
group_name="${GROUP_NAME}"
Expand All @@ -19,19 +20,30 @@ fi

# Get or create user
user_name="${USER_NAME}"
if id -u "${PUID}" > /dev/null 2>&1; then
if getent passwd "${PUID}" > /dev/null 2>&1; then
user_name=$(getent passwd "${PUID}" | cut -d: -f1)
echo "Using existing user ${user_name} (PUID: ${PUID}, PGID: ${PGID})"
else
echo "Creating user ${user_name} (PUID: ${PUID}, PGID: ${PGID})"
adduser --uid "${PUID}" --ingroup "${group_name}" --disabled-password --gecos "" "${user_name}"
fi

# Change ownership of relevant directories
echo "Adjusting ownership of /opt/siyuan and /home/siyuan/"
# Parse command line arguments for --workspace option
# Store other arguments in ARGS for later use
ARGS=""
while [[ "$#" -gt 0 ]]; do
case $1 in
--workspace=*) WORKSPACE_DIR="${1#*=}"; shift ;;
*) ARGS="$ARGS $1"; shift ;;
esac
done

# Change ownership of relevant directories, including the workspace directory
echo "Adjusting ownership of /opt/siyuan, /home/siyuan/, and ${WORKSPACE_DIR}"
chown -R "${PUID}:${PGID}" /opt/siyuan
chown -R "${PUID}:${PGID}" /home/siyuan/
chown -R "${PUID}:${PGID}" "${WORKSPACE_DIR}"

# Switch to the newly created user and start the main process
echo "Starting Siyuan with UID:${PUID} and GID:${PGID}"
exec su-exec "${PUID}:${PGID}" /opt/siyuan/kernel "$@"
# Switch to the newly created user and start the main process with all arguments
echo "Starting Siyuan with UID:${PUID} and GID:${PGID} in workspace ${WORKSPACE_DIR}"
exec su-exec "${PUID}:${PGID}" /opt/siyuan/kernel --workspace="${WORKSPACE_DIR}" ${ARGS}

0 comments on commit 4ef5d90

Please sign in to comment.