mirror of
https://github.com/swissmakers/fail2ban-ui.git
synced 2026-04-17 05:53:15 +02:00
Switch to local-build tailwindcss instead CDN
This commit is contained in:
97
build-tailwind.sh
Executable file
97
build-tailwind.sh
Executable file
@@ -0,0 +1,97 @@
|
||||
#!/bin/bash
|
||||
# Build script for Tailwind CSS v3
|
||||
# This script builds Tailwind CSS for production use
|
||||
# Always installs latest Tailwind CSS v3 (matches CDN version)
|
||||
|
||||
set -e
|
||||
|
||||
echo "Building Tailwind CSS v3 for Fail2ban-UI..."
|
||||
|
||||
# Check if Node.js and npm are installed
|
||||
if ! command -v node &> /dev/null; then
|
||||
echo "Error: Node.js is not installed. Please install Node.js first."
|
||||
echo "Visit: https://nodejs.org/"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v npm &> /dev/null; then
|
||||
echo "Error: npm is not installed. Please install npm first."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create directories if they don't exist
|
||||
mkdir -p pkg/web/static
|
||||
mkdir -p .tailwind-build
|
||||
|
||||
# Initialize package.json if it doesn't exist
|
||||
if [ ! -f package.json ]; then
|
||||
echo "Initializing npm package..."
|
||||
npm init -y --silent
|
||||
fi
|
||||
|
||||
# Install latest Tailwind CSS v3
|
||||
echo "Installing latest Tailwind CSS v3..."
|
||||
npm install -D tailwindcss@^3 --silent
|
||||
|
||||
# Verify the CLI binary exists
|
||||
if [ ! -f "node_modules/.bin/tailwindcss" ] && [ ! -f "node_modules/tailwindcss/lib/cli.js" ]; then
|
||||
echo "❌ Error: Tailwind CSS CLI not found after installation."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Show installed version
|
||||
INSTALLED_VERSION=$(npm list tailwindcss 2>/dev/null | grep "tailwindcss@" | head -1 | awk '{print $2}' || echo "unknown")
|
||||
echo "Installed: $INSTALLED_VERSION"
|
||||
|
||||
# Create tailwind.config.js if it doesn't exist
|
||||
if [ ! -f tailwind.config.js ]; then
|
||||
echo "Creating Tailwind CSS configuration..."
|
||||
cat > tailwind.config.js << 'EOF'
|
||||
/** @type {import('tailwindcss').Config} */
|
||||
module.exports = {
|
||||
content: [
|
||||
"./pkg/web/templates/**/*.html",
|
||||
],
|
||||
theme: {
|
||||
extend: {},
|
||||
},
|
||||
plugins: [],
|
||||
}
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Create input CSS file if it doesn't exist
|
||||
if [ ! -f .tailwind-build/input.css ]; then
|
||||
echo "Creating input CSS file..."
|
||||
cat > .tailwind-build/input.css << 'EOF'
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Build Tailwind CSS
|
||||
echo "Building Tailwind CSS..."
|
||||
|
||||
# Try different methods to run the CLI
|
||||
if [ -f "node_modules/.bin/tailwindcss" ]; then
|
||||
node_modules/.bin/tailwindcss -i .tailwind-build/input.css -o pkg/web/static/tailwind.css --minify
|
||||
elif [ -f "node_modules/tailwindcss/lib/cli.js" ]; then
|
||||
node node_modules/tailwindcss/lib/cli.js -i .tailwind-build/input.css -o pkg/web/static/tailwind.css --minify
|
||||
elif command -v npx &> /dev/null; then
|
||||
npx --yes tailwindcss -i .tailwind-build/input.css -o pkg/web/static/tailwind.css --minify
|
||||
else
|
||||
echo "❌ Error: Could not find Tailwind CSS CLI"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Verify output file was created and is not empty
|
||||
if [ ! -f "pkg/web/static/tailwind.css" ] || [ ! -s "pkg/web/static/tailwind.css" ]; then
|
||||
echo "❌ Error: Output file was not created or is empty"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✅ Tailwind CSS v3 built successfully!"
|
||||
echo "Output: pkg/web/static/tailwind.css"
|
||||
echo ""
|
||||
echo "The application will now use the local Tailwind CSS file instead of the CDN."
|
||||
Reference in New Issue
Block a user