hedgedoc/bin/setup
Sheogorath 3d7bf464d9
docs(manual): Adjust instructions to use only pinned dependencies
This patch adds `--frozen-lockfile` to our regular `yarn install` calls
during manual set up. This should ensure people get the expected
versions and not any newer or older versions that might behave
unexpectedly.

References:
https://github.com/yarnpkg/yarn/issues/5847#issuecomment-537521943
https://classic.yarnpkg.com/en/docs/cli/install#toc-yarn-install-frozen-lockfile

Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
2022-04-12 20:16:33 +02:00

62 lines
1.6 KiB
Bash
Executable file

#!/bin/bash
set -e
version_lt() { test "$(printf '%s\n' "$@" | { [ "$(uname)" = "Linux" ] && (sort -V || sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n;) } | tail -n 1)" != "$1"; }
# run command at repo root
CURRENT_PATH=$PWD
if [ -d .git ]; then
cd "$(git rev-parse --show-toplevel)"
fi
if ! type yarn > /dev/null; then
cat << EOF
FATAL: Yarn could not be found.
Please follow the official installation instructions at
https://classic.yarnpkg.com/en/docs/install
and try again.
EOF
exit 1
fi
if version_lt "$(yarn --version)" '1.22.0'; then
cat << EOF
FATAL: Your Yarn version is not supported.
Please upgrade to version 1.22.0 or higher and try again.
See https://classic.yarnpkg.com/en/docs/install for instructions.
EOF
exit 1
fi
if version_lt "$(node --version)" 'v12.0.0'; then
cat << EOF
FATAL: Your Node.js version is not supported.
Please upgrade to version 12 or higher and try again.
We recommend running the latest LTS release, see https://nodejs.org/en/about/releases/ for details.
EOF
exit 1
fi
echo "Copying config files..."
if [ ! -f config.json ]; then
cp config.json.example config.json
fi
echo "Installing packages..."
yarn install --production=true --frozen-lockfile
cat << EOF
If you want to build the frontend yourself, you need to run 'yarn install --frozen-lockfile' before 'yarn build' to install the devDependencies for the build process.
Edit the following config file to setup HedgeDoc server and client.
Read more info at https://docs.hedgedoc.org/configuration/
* config.json -- HedgeDoc config
EOF
# change directory back
cd "$CURRENT_PATH"