mirror of
https://github.com/shadoll/sLogos.git
synced 2025-12-20 03:26:59 +00:00
Refactor Makefile for improved container runtime detection and simplify commands
This commit is contained in:
52
Makefile
52
Makefile
@@ -1,32 +1,52 @@
|
|||||||
# Logo Gallery Project Makefile
|
# Logo Gallery Project Makefile
|
||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
DOCKER_COMPOSE = docker compose
|
|
||||||
CONTAINER_NAME = slogos-dev
|
CONTAINER_NAME = slogos-dev
|
||||||
DEV_PORT = 5006
|
DEV_PORT = 5006
|
||||||
|
|
||||||
|
# Auto-detect container runtime (docker or podman)
|
||||||
|
CONTAINER_RUNTIME := $(shell \
|
||||||
|
if command -v docker >/dev/null 2>&1 && docker info >/dev/null 2>&1; then \
|
||||||
|
echo "docker"; \
|
||||||
|
elif command -v podman >/dev/null 2>&1; then \
|
||||||
|
echo "podman"; \
|
||||||
|
else \
|
||||||
|
echo "none"; \
|
||||||
|
fi)
|
||||||
|
|
||||||
|
COMPOSEFILE = compose.dev.yml
|
||||||
|
# Set compose command based on runtime
|
||||||
|
ifeq ($(CONTAINER_RUNTIME),docker)
|
||||||
|
DOCKER_COMPOSE ?= docker compose -f $(COMPOSEFILE)
|
||||||
|
else ifeq ($(CONTAINER_RUNTIME),podman)
|
||||||
|
DOCKER_COMPOSE ?= podman-compose -f $(COMPOSEFILE)
|
||||||
|
else
|
||||||
|
$(error No container runtime found. Please install docker or podman)
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
# Main targets
|
# Main targets
|
||||||
.PHONY: all build start stop restart logs clean update-data dev rebuild favicon build-with-favicons generate-svg-variants pwa-cache-list run update-lock
|
.PHONY: all build start stop restart logs clean update-data dev rebuild favicon build-with-favicons generate-svg-variants pwa-cache-list run update-lock
|
||||||
|
|
||||||
all: build start
|
all: build start
|
||||||
|
|
||||||
dev: pwa-cache-list
|
dev: pwa-cache-list
|
||||||
$(DOCKER_COMPOSE) -f compose.dev.yml up --build
|
$(DOCKER_COMPOSE) up --build
|
||||||
|
|
||||||
build:
|
build:
|
||||||
@echo "Building the Logo Gallery container..."
|
@echo "Building the Logo Gallery container..."
|
||||||
$(DOCKER_COMPOSE) -f compose.dev.yml build
|
$(DOCKER_COMPOSE) build
|
||||||
|
|
||||||
# Start the application in the background
|
# Start the application in the background
|
||||||
start: pwa-cache-list
|
start: pwa-cache-list
|
||||||
@echo "Starting Logo Gallery application on port $(DEV_PORT)..."
|
@echo "Starting Logo Gallery application on port $(DEV_PORT)..."
|
||||||
$(DOCKER_COMPOSE) -f compose.dev.yml up -d
|
$(DOCKER_COMPOSE) up -d
|
||||||
@echo "Application is running at http://localhost:$(DEV_PORT)"
|
@echo "Application is running at http://localhost:$(DEV_PORT)"
|
||||||
|
|
||||||
# Stop the application
|
# Stop the application
|
||||||
stop:
|
stop:
|
||||||
@echo "Stopping Logo Gallery application..."
|
@echo "Stopping Logo Gallery application..."
|
||||||
$(DOCKER_COMPOSE) -f compose.dev.yml down
|
$(DOCKER_COMPOSE) down
|
||||||
|
|
||||||
# Restart the application
|
# Restart the application
|
||||||
restart: stop start
|
restart: stop start
|
||||||
@@ -34,37 +54,37 @@ restart: stop start
|
|||||||
# View the application logs
|
# View the application logs
|
||||||
logs:
|
logs:
|
||||||
@echo "Showing application logs (press Ctrl+C to exit)..."
|
@echo "Showing application logs (press Ctrl+C to exit)..."
|
||||||
$(DOCKER_COMPOSE) -f compose.dev.yml logs -f
|
$(DOCKER_COMPOSE) logs -f
|
||||||
|
|
||||||
# Run a command inside the container
|
# Run a command inside the container
|
||||||
# Usage: make run CMD="npm run build"
|
# Usage: make run CMD="npm run build"
|
||||||
run:
|
run:
|
||||||
@echo "Running command in container: $(CMD)"
|
@echo "Running command in container: $(CMD)"
|
||||||
$(DOCKER_COMPOSE) -f compose.dev.yml run --rm $(CONTAINER_NAME) $(CMD)
|
$(DOCKER_COMPOSE) run --rm $(CONTAINER_NAME) $(CMD)
|
||||||
|
|
||||||
exec:
|
exec:
|
||||||
$(DOCKER_COMPOSE) -f compose.dev.yml run --rm $(CONTAINER_NAME) $(CMD)
|
$(DOCKER_COMPOSE) run --rm $(CONTAINER_NAME) $(CMD)
|
||||||
|
|
||||||
update-data:
|
update-data:
|
||||||
@echo "Scanning logos directory and updating logos.json for development..."
|
@echo "Scanning logos directory and updating logos.json for development..."
|
||||||
$(DOCKER_COMPOSE) -f compose.dev.yml run --rm $(CONTAINER_NAME) npm run update-data
|
$(DOCKER_COMPOSE) run --rm $(CONTAINER_NAME) npm run update-data
|
||||||
@echo "Logos and Flags have been updated - refresh the browser to see changes"
|
@echo "Logos and Flags have been updated - refresh the browser to see changes"
|
||||||
|
|
||||||
# Clean up build artifacts and temporary files
|
# Clean up build artifacts and temporary files
|
||||||
clean:
|
clean:
|
||||||
@echo "Cleaning up build artifacts and temporary files..."
|
@echo "Cleaning up build artifacts and temporary files..."
|
||||||
$(DOCKER_COMPOSE) -f compose.dev.yml down
|
$(DOCKER_COMPOSE) down
|
||||||
docker builder prune -f
|
docker builder prune -f
|
||||||
|
|
||||||
# Complete rebuild from scratch
|
# Complete rebuild from scratch
|
||||||
rebuild:
|
rebuild:
|
||||||
$(DOCKER_COMPOSE) -f compose.dev.yml down -v
|
$(DOCKER_COMPOSE) down -v
|
||||||
$(DOCKER_COMPOSE) -f compose.dev.yml build --no-cache
|
$(DOCKER_COMPOSE) build --no-cache
|
||||||
|
|
||||||
# Generate favicons
|
# Generate favicons
|
||||||
favicon:
|
favicon:
|
||||||
@echo "Generating favicons..."
|
@echo "Generating favicons..."
|
||||||
$(DOCKER_COMPOSE) -f compose.dev.yml run --rm $(CONTAINER_NAME) npm run generate-favicons
|
$(DOCKER_COMPOSE) run --rm $(CONTAINER_NAME) npm run generate-favicons
|
||||||
@echo "Favicons have been generated"
|
@echo "Favicons have been generated"
|
||||||
|
|
||||||
# Build with favicons
|
# Build with favicons
|
||||||
@@ -73,16 +93,16 @@ build-with-favicons: favicon build
|
|||||||
# Update package-lock.json by running npm install in Docker
|
# Update package-lock.json by running npm install in Docker
|
||||||
update-lock:
|
update-lock:
|
||||||
@echo "Updating package-lock.json to match package.json..."
|
@echo "Updating package-lock.json to match package.json..."
|
||||||
$(DOCKER_COMPOSE) -f compose.dev.yml run --rm $(CONTAINER_NAME) npm install
|
$(DOCKER_COMPOSE) run --rm $(CONTAINER_NAME) npm install
|
||||||
@echo "Package lock file has been updated"
|
@echo "Package lock file has been updated"
|
||||||
|
|
||||||
# Generate SVG variants with color sets
|
# Generate SVG variants with color sets
|
||||||
generate-svg-variants:
|
generate-svg-variants:
|
||||||
@echo "Generating SVG variants with color sets..."
|
@echo "Generating SVG variants with color sets..."
|
||||||
$(DOCKER_COMPOSE) -f compose.dev.yml run --rm $(CONTAINER_NAME) node scripts/generate-svg-variants.js
|
$(DOCKER_COMPOSE) run --rm $(CONTAINER_NAME) node scripts/generate-svg-variants.js
|
||||||
@echo "SVG variants have been generated"
|
@echo "SVG variants have been generated"
|
||||||
|
|
||||||
# Generate PWA cache list
|
# Generate PWA cache list
|
||||||
generate-pwa-cache-list:
|
generate-pwa-cache-list:
|
||||||
@echo "Generating PWA cache list..."
|
@echo "Generating PWA cache list..."
|
||||||
$(DOCKER_COMPOSE) -f compose.dev.yml run --rm $(CONTAINER_NAME) npm run pwa-cache-list
|
$(DOCKER_COMPOSE) run --rm $(CONTAINER_NAME) npm run pwa-cache-list
|
||||||
|
|||||||
@@ -2956,10 +2956,10 @@
|
|||||||
"ua_yellow": "#FFDD00"
|
"ua_yellow": "#FFDD00"
|
||||||
},
|
},
|
||||||
"targets": {
|
"targets": {
|
||||||
"part_s": "#s",
|
"part_s": "#shadoll_s",
|
||||||
"part_s_stroke": "#s&stroke",
|
"part_s_stroke": "#shadoll_s&stroke",
|
||||||
"part_l": "#l",
|
"part_l": "#shadoll_l",
|
||||||
"part_l_stroke": "#l&stroke"
|
"part_l_stroke": "#shadoll_l&stroke"
|
||||||
},
|
},
|
||||||
"sets": {
|
"sets": {
|
||||||
"light": {
|
"light": {
|
||||||
|
|||||||
Reference in New Issue
Block a user