mirror of
https://github.com/unraid/api.git
synced 2025-12-31 21:49:57 -06:00
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added detailed versioning for plugin packages incorporating architecture and build identifiers. - Simplified and improved install/uninstall scripts with backup and dynamic package detection. - Introduced comprehensive setup, verification, patching, and cleanup scripts for the Unraid API environment. - Enhanced service control with explicit start, stop, restart, and status commands. - Added robust dependency management scripts for restoring and archiving Node.js modules. - Implemented vendor archive metadata storage and dynamic handling during build and runtime. - Added new CLI options and environment schemas for consistent build configuration. - Introduced new shutdown scripts to gracefully stop flash-backup and unraid-api services. - Added utility scripts for API version detection and vendor archive configuration. - Added a new package description file detailing Unraid API features and homepage link. - **Bug Fixes** - Improved validation and error reporting for missing manifests, dependencies, and configuration files. - Enhanced fallback logic for locating and creating vendor archives. - Fixed iframe compatibility in UI by updating HTML and Firefox preference files. - **Chores** - Updated .gitignore with generated file patterns for Node.js binaries and archives. - Removed obsolete internal documentation and legacy cleanup scripts. - Refined Docker Compose and CI workflows to pass precise API versioning and manage build artifacts. - Centralized common environment validation and CLI option definitions across build tools. - Cleaned up plugin manifest by removing Node.js and PNPM-related entities and legacy logic. - Improved logging and error handling in build and installation scripts. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
36 lines
1.3 KiB
Bash
Executable File
36 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Get host IP based on platform
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
# macOS
|
|
HOST_LAN_IP=$(ipconfig getifaddr en0 || ipconfig getifaddr en1 || echo "127.0.0.1")
|
|
else
|
|
# Linux and others
|
|
HOST_LAN_IP=$(hostname -I | awk '{print $1}' || echo "127.0.0.1")
|
|
fi
|
|
|
|
# Verify we have a valid IP
|
|
if [[ ! $HOST_LAN_IP =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
|
echo "Error: Could not determine valid host IP address. Using localhost."
|
|
HOST_LAN_IP="127.0.0.1"
|
|
fi
|
|
|
|
CI=${CI:-false}
|
|
TAG="LOCAL_PLUGIN_BUILD"
|
|
IS_TAGGED=$(git describe --tags --abbrev=0 --exact-match || echo '')
|
|
PACKAGE_LOCK_VERSION=$(jq -r '.version' package.json)
|
|
GIT_SHA=$(git rev-parse --short HEAD)
|
|
API_VERSION=$([[ -n "$IS_TAGGED" ]] && echo "$PACKAGE_LOCK_VERSION" || echo "${PACKAGE_LOCK_VERSION}+${GIT_SHA}")
|
|
|
|
# Define container name for easier management
|
|
CONTAINER_NAME="plugin-builder"
|
|
|
|
# Stop any running plugin-builder container first
|
|
echo "Stopping any running plugin-builder containers..."
|
|
docker ps -q --filter "name=${CONTAINER_NAME}" | xargs -r docker stop
|
|
|
|
# Start the container with the specified environment variables
|
|
echo "Starting plugin-builder container..."
|
|
|
|
docker compose run --remove-orphans --service-ports -e HOST_LAN_IP="$HOST_LAN_IP" -e CI="$CI" -e TAG="$TAG" -e API_VERSION="$API_VERSION" ${CONTAINER_NAME} "$@"
|