aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorParker <contact@pkrm.dev>2024-11-15 23:17:38 -0600
committerParker <contact@pkrm.dev>2024-11-15 23:17:38 -0600
commite4fd674d6e2bb56c0f8f9c04bddd74994c1fe535 (patch)
tree6dbe1d6e13bcc389cc3ffdea4edebc3f598ab84e
parent4c810b2a62ed9c1201a7bb389fc405db2d6cfe15 (diff)
Update start scripts
-rw-r--r--Dockerfile2
-rw-r--r--app/package.json2
-rw-r--r--app/yarn.lock8
-rwxr-xr-xdev.sh20
-rwxr-xr-xdocker_start.sh6
-rw-r--r--linklogger.bat (renamed from dev.bat)0
-rwxr-xr-x[-rw-r--r--]linklogger.sh76
7 files changed, 84 insertions, 30 deletions
diff --git a/Dockerfile b/Dockerfile
index 16cc8c1..98db666 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -23,4 +23,4 @@ COPY --from=build-ui /app/dist /usr/share/nginx/html
# Replace the default site with the LinkLogger config
COPY nginx.conf /etc/nginx/sites-enabled/default
-CMD ["./linklogger.sh"] \ No newline at end of file
+CMD ["./docker_start.sh"] \ No newline at end of file
diff --git a/app/package.json b/app/package.json
index 0462111..d50bf85 100644
--- a/app/package.json
+++ b/app/package.json
@@ -29,7 +29,7 @@
"globals": "^15.11.0",
"typescript": "~5.6.2",
"typescript-eslint": "^8.11.0",
- "vite": "^5.4.10"
+ "vite": "^5.4.11"
},
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
}
diff --git a/app/yarn.lock b/app/yarn.lock
index 189fe6d..69f6fda 100644
--- a/app/yarn.lock
+++ b/app/yarn.lock
@@ -1587,10 +1587,10 @@ uri-js@^4.2.2:
dependencies:
punycode "^2.1.0"
-vite@^5.4.10:
- version "5.4.10"
- resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.10.tgz#d358a7bd8beda6cf0f3b7a450a8c7693a4f80c18"
- integrity sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==
+vite@^5.4.11:
+ version "5.4.11"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.11.tgz#3b415cd4aed781a356c1de5a9ebafb837715f6e5"
+ integrity sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==
dependencies:
esbuild "^0.21.3"
postcss "^8.4.43"
diff --git a/dev.sh b/dev.sh
deleted file mode 100755
index e9d2d0b..0000000
--- a/dev.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#! /bin/bash
-# If on Linux or MacOS - check tmux
-if [[ "$OSTYPE" == "linux-gnu"* ]] || [[ "$OSTYPE" == "darwin"* ]]; then
- python3 linklogger.py &
- cd app || return
- yarn dev
-fi
-
-# If on Windows
-if [[ "$OSTYPE" == "msys" ]]; then
- python3 linklogger.py &
- cd app || return
- yarn dev
- # echo -e "This script is not supported on Windows. Please run the API and UI manually."
- # echo -e "\t1. Install node.js, yarn, python3, and pip"
- # echo -e "\t2. Run 'pip install -r requirements.txt' in the root directory"
- # echo -e "\t3. Run 'python3 linklogger.py' in the root directory"
- # echo -e "\t4. Run 'cd app' and then 'yarn dev'"
- # exit 1
-fi \ No newline at end of file
diff --git a/docker_start.sh b/docker_start.sh
new file mode 100755
index 0000000..a2a0f44
--- /dev/null
+++ b/docker_start.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+# Start nginx in the background
+service nginx start
+
+# Run the Python script
+python -u linklogger.py \ No newline at end of file
diff --git a/dev.bat b/linklogger.bat
index 32c0c3e..32c0c3e 100644
--- a/dev.bat
+++ b/linklogger.bat
diff --git a/linklogger.sh b/linklogger.sh
index a2a0f44..71ab398 100644..100755
--- a/linklogger.sh
+++ b/linklogger.sh
@@ -1,6 +1,74 @@
#!/bin/bash
-# Start nginx in the background
-service nginx start
-# Run the Python script
-python -u linklogger.py \ No newline at end of file
+# Define color variables for easier use
+RED='\033[1;31m'
+GREEN='\033[1;32m'
+NC='\033[0m' # No Color (reset to default)
+
+# Function to detect the appropriate Python version
+function check_python_version() {
+ # Check for python3 first
+ if command -v python3 &> /dev/null; then
+ PYTHON_CMD="python3"
+ elif command -v python &> /dev/null; then
+ PYTHON_CMD="python"
+ else
+ printf "${RED}No Python installation found. Please install Python.${NC}\n"
+ exit 1
+ fi
+
+ # Check Python version (>= 3.10)
+ PYTHON_VERSION=$($PYTHON_CMD -c 'import platform; print(platform.python_version())')
+ REQUIRED_VERSION="3.10"
+
+ if [[ "$(printf '%s\n' "$REQUIRED_VERSION" "$PYTHON_VERSION" | sort -V | head -n1)" != "$REQUIRED_VERSION" ]]; then
+ printf "${RED}Python version $PYTHON_VERSION is installed, but version 3.10 or higher is required.${NC}\n"
+ exit 1
+ fi
+}
+
+# Function to check that pip is installed
+function check_pip_installed() {
+ if ! command -v pip &> /dev/null; then
+ printf "${RED}Pip is not installed. Please install Pip before proceeding.${NC}\n"
+ exit 1
+ fi
+}
+
+# Function to check if yarn is installed
+function check_yarn_installed() {
+ if ! command -v yarn &> /dev/null; then
+ printf "${RED}Yarn is not installed. Please install Yarn before proceeding.${NC}\n"
+ exit 1
+ fi
+}
+
+# If on Linux or macOS
+if [[ "$OSTYPE" == "linux-gnu"* ]] || [[ "$OSTYPE" == "darwin"* ]]; then
+ check_python_version
+ printf "${GREEN}Python version $PYTHON_VERSION is installed.${NC}\n"
+ check_pip_installed
+ printf "${GREEN}Pip is installed.${NC}\n"
+ check_yarn_installed
+ printf "${GREEN}Yarn is installed.${NC}\n"
+
+ # Install the UI dependencies
+ printf "${GREEN}Installing UI dependencies...${NC}\n"
+ cd app || { printf "${RED}Failed to enter 'app' directory. Exiting.${NC}\n"; exit 1; }
+ yarn install | head -n 5
+ yarn add vite | head -n 5
+ cd .. || { printf "${RED}Failed to return to the previous directory. Exiting.${NC}\n"; exit 1; }
+ printf "${GREEN}UI dependencies installed.${NC}\n"
+
+ # Start the API and UI
+ printf "${GREEN}Starting API and UI...${NC}\n"
+ $PYTHON_CMD linklogger.py &
+ cd app || { printf "${RED}Failed to enter 'app' directory. Exiting.${NC}\n"; exit 1; }
+ yarn dev
+fi
+
+# If on Windows (MSYS environment)
+if [[ "$OSTYPE" == "msys" ]]; then
+ printf "${RED}This script is not for Windows. Please run dev.bat instead.${NC}\n"
+ exit 1
+fi