forgot sh file LOL
This commit is contained in:
parent
9a0b57e299
commit
7d77e73030
1 changed files with 146 additions and 0 deletions
146
start.sh
Normal file
146
start.sh
Normal file
|
@ -0,0 +1,146 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
if [ ! -f package.json ]; then
|
||||
echo "package.json not found in $SCRIPT_DIR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PKG_MANAGER="bun"
|
||||
MODE="dev"
|
||||
|
||||
while [[ "$#" -gt 0 ]]; do
|
||||
arg="$1"
|
||||
shift
|
||||
|
||||
if [[ "$next_is_value" == "1" ]]; then
|
||||
if [[ "$last_key" == "manager" ]]; then
|
||||
PKG_MANAGER="$arg"
|
||||
elif [[ "$last_key" == "mode" ]]; then
|
||||
MODE="$arg"
|
||||
fi
|
||||
next_is_value=0
|
||||
fi
|
||||
|
||||
case "$arg" in
|
||||
clean|cleanup)
|
||||
cleanup=true
|
||||
;;
|
||||
manager)
|
||||
last_key="manager"
|
||||
next_is_value=1
|
||||
;;
|
||||
mode)
|
||||
last_key="mode"
|
||||
next_is_value=1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
ALLOWED_MANAGERS="bun npm yarn pnpm"
|
||||
ALLOWED_MODES="dev prod development production"
|
||||
|
||||
manager_allowed=0
|
||||
for allowed in $ALLOWED_MANAGERS; do
|
||||
if [[ "$PKG_MANAGER" == "$allowed" ]]; then
|
||||
manager_allowed=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
mode_allowed=0
|
||||
for allowed in $ALLOWED_MODES; do
|
||||
if [[ "$MODE" == "$allowed" ]]; then
|
||||
mode_allowed=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ "$manager_allowed" == "0" ]]; then
|
||||
echo "$PKG_MANAGER is not a valid package manager, please use one of the following: $ALLOWED_MANAGERS"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "$mode_allowed" == "0" ]]; then
|
||||
echo "$MODE is not a valid mode, please use one of the following: $ALLOWED_MODES"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Using package manager: $PKG_MANAGER"
|
||||
echo "Mode: $MODE"
|
||||
|
||||
NPM_MARKER="node_modules/.npm_used"
|
||||
YARN_MARKER="node_modules/.yarn_used"
|
||||
PNPM_MARKER="node_modules/.pnpm_used"
|
||||
BUN_MARKER="node_modules/.bun_used"
|
||||
|
||||
case "$PKG_MANAGER" in
|
||||
npm)
|
||||
INSTALL_CMD="npm install"
|
||||
RUN_CMD="npm run $MODE"
|
||||
CURRENT_MARKER="$NPM_MARKER"
|
||||
;;
|
||||
yarn)
|
||||
INSTALL_CMD="yarn"
|
||||
RUN_CMD="yarn $MODE"
|
||||
CURRENT_MARKER="$YARN_MARKER"
|
||||
;;
|
||||
pnpm)
|
||||
INSTALL_CMD="pnpm install"
|
||||
RUN_CMD="pnpm $MODE"
|
||||
CURRENT_MARKER="$PNPM_MARKER"
|
||||
;;
|
||||
bun)
|
||||
INSTALL_CMD="bun install"
|
||||
RUN_CMD="bun $MODE"
|
||||
CURRENT_MARKER="$BUN_MARKER"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ -f "$NPM_MARKER" && "$CURRENT_MARKER" != "$NPM_MARKER" ]] || \
|
||||
[[ -f "$YARN_MARKER" && "$CURRENT_MARKER" != "$YARN_MARKER" ]] || \
|
||||
[[ -f "$PNPM_MARKER" && "$CURRENT_MARKER" != "$PNPM_MARKER" ]] || \
|
||||
[[ -f "$BUN_MARKER" && "$CURRENT_MARKER" != "$BUN_MARKER" ]]; then
|
||||
cleanup=true
|
||||
fi
|
||||
|
||||
if [[ "$cleanup" == "true" ]]; then
|
||||
files_to_delete="package-lock.json yarn.lock pnpm-lock.yaml bun.lockb"
|
||||
folders_to_delete="node_modules dist logs"
|
||||
markers_to_delete="$NPM_MARKER $YARN_MARKER $PNPM_MARKER $BUN_MARKER"
|
||||
|
||||
echo "Cleaning up files and folders..."
|
||||
|
||||
for file in $files_to_delete; do
|
||||
if [[ -f "$file" ]]; then
|
||||
echo "Found $file in $SCRIPT_DIR - deleting..."
|
||||
rm -f "$file"
|
||||
fi
|
||||
done
|
||||
|
||||
for folder in $folders_to_delete; do
|
||||
if [[ -d "$folder" ]]; then
|
||||
echo "Found $folder in $SCRIPT_DIR - deleting..."
|
||||
rm -rf "$folder"
|
||||
fi
|
||||
done
|
||||
|
||||
for marker in $markers_to_delete; do
|
||||
if [[ -f "$marker" ]]; then
|
||||
rm -f "$marker"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ -n "$RUN_CMD" ]]; then
|
||||
echo "Running $RUN_CMD..."
|
||||
$INSTALL_CMD
|
||||
$RUN_CMD
|
||||
else
|
||||
echo "No run command set, exiting..."
|
||||
fi
|
||||
|
||||
exit 0
|
Loading…
Reference in a new issue