mirror of
https://github.com/spacedriveapp/spacedrive.git
synced 2026-02-20 15:43:58 -05:00
* Fix onboarding sometimes not redirecting to Explorer on prod builds - Fix failure trying to compile landing prod builds outside Vercel - Fix Server docker failing to restart due to some incorrecting logic for creating the unprivileged users erroring out - Fix Storybook failing to build due to updates to Vite - Update Storybook dependencies - Remove unused Inter font dependency - Fix some incorrect references to NodeJS types inside web code - Fix $libraryId index using the incorrect redirect function - Improve error handling for the $libraryId index route - Fix Prism not being correctly loaded, and failing to register its plugins - Improve Prism loading error handling - Small improvement to the text highlight logic - Fix SCSS deprecation for untyped hsl values - Fix library query cache incorrectly saving empty values, which lead to the onboarding redirect bug - Patch contentLayer to fix an error during the final part of it's build process - Update most dev dependencies - Update publish-artifact to be compatible with new @actions/artifact - Fix issue with new vite-plugin-solid failing to build our .ts files due to the removal of the typescript plugin - Fix pnpm overrides not applying due to incorrect placement in package.json - Replace deprecated react-tsparticles and updated three used by the Bubbles background in the landing page - Rework Bubbles background to be compatible with new @tsparticles/react - Update @sd/config dependencies - Update @sd/scripts dependencies * Implement suggestions - Replace mobile JS node setup with custom setup-pnpm action - Handle GITHUB_SECRET default value in code and throw a warning when it is not set - Fix pnpm now resolving the correct node version when building Spacedrive server docker - Add missing getent command to spacedrive server docker - Fix typo in entrypoint.sh - Implement a more robust check if the user is already in a group - Fix adduser failing due to missing default group - Disconnect IntersectionObserver on component unmount - Improve prism import comment * Implement more suggestions - Pin genent version to latest stable release of UClibc - Add checksum checks for all ADD clauses in Spacedrive server Dockerfile * Increase Maestro timeout to reduce CI failures due to slow simulator startup * Dowgrade maestro to workaround CI timeout * Improvements to the script that run maestro mobile tests - Increase the amount of retries for a maestro test run to 6 - Increase Maestro driver startup timeout to 2 minutes * Let run-maestro-tests.sh decide how to run itself * ¯\_(ツ)_/¯
91 lines
2.3 KiB
Bash
91 lines
2.3 KiB
Bash
#!/usr/bin/env sh
|
|
|
|
set -eu
|
|
|
|
# Shortcircuit for non-default commands.
|
|
# The last part inside the "{}" is a workaround for the following bug in ash/dash:
|
|
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=874264
|
|
if [ -n "${1:-}" ] && [ "${1#-}" = "${1}" ] \
|
|
&& [ -n "$(command -v -- "${1}")" ] \
|
|
&& { ! [ -f "${1}" ] || [ -x "${1}" ]; }; then
|
|
exec "$@"
|
|
fi
|
|
|
|
if [ "$(id -u)" -ne 0 ]; then
|
|
echo "This container requires executing as root for initial setup, privileges are dropped shortly after" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
delpasswd () {
|
|
deluser "$@"
|
|
}
|
|
|
|
create () {
|
|
if [ "$#" -ne 3 ] || ! { [ "$1" = "group" ] || [ "$1" = "passwd" ]; } || [ -z "$2" ] || [ "$3" -le 0 ] ; then
|
|
echo "Usage: create <group|passwd> <NAME> <ID>" 1>&2
|
|
echo " NAME: Group or user name to be created" 1>&2
|
|
echo " ID: ID > 1000 to be assigned to the group or user" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
if getent "$1" "$2" >/dev/null; then
|
|
if [ "$(getent "$1" "$2" | cut -d: -f3)" = "$3" ]; then
|
|
echo "$1 $2 already exists with ID: $3"
|
|
return
|
|
else
|
|
"del${1}" "$2"
|
|
fi
|
|
fi
|
|
|
|
if getent "$1" "$3" >/dev/null; then
|
|
# WARNING: This need to be modified if this functions arguments are changed
|
|
set -- "$1" "$2" "$3" "$(getent "$1" "$3" | cut -d: -f1)"
|
|
if [ "$2" = "$4" ]; then
|
|
echo "$1 $2 already exists with ID: $3"
|
|
return
|
|
else
|
|
"del${1}" "$4"
|
|
fi
|
|
fi
|
|
|
|
case "$1" in
|
|
group)
|
|
addgroup --system --gid "$3" "$2"
|
|
;;
|
|
passwd)
|
|
rm -rf /var/empty
|
|
adduser \
|
|
--system \
|
|
--uid "$3" \
|
|
--home /var/empty \
|
|
--shell /bin/nologin \
|
|
--gecos "$2 system account" \
|
|
-G nobody \
|
|
--no-create-home \
|
|
"$2"
|
|
passwd -l "$2"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
echo "Configure unprivileged user"
|
|
create group spacedrive 1000
|
|
create passwd spacedrive 1000
|
|
|
|
# Add spacedrive user to spacedrive group, if it is not already in it
|
|
if ! id -Gn spacedrive | tr '[:space:]+' '\n' | grep -x 'spacedrive'; then
|
|
adduser spacedrive spacedrive
|
|
fi
|
|
|
|
if [ -n "${TZ:-}" ]; then
|
|
echo "Set Timezone to $TZ"
|
|
rm -f /etc/localtime
|
|
ln -s "/usr/share/zoneinfo/${TZ}" /etc/localtime
|
|
echo "$TZ" >/etc/timezone
|
|
fi
|
|
|
|
echo "Fix spacedrive's directories permissions"
|
|
chown -R "${PUID}:${PGID}" /data
|
|
|
|
exec su spacedrive -s /usr/bin/sd-server -- "$@"
|