feat(makefile): Makefile ind sql schema
This commit is contained in:
parent
a7d708c8ca
commit
e655fb4f71
2 changed files with 74 additions and 0 deletions
37
Makefile
Normal file
37
Makefile
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
DB_PATH := /var/lib/erminig/erminig.db
|
||||
DB_DIR := /var/lib/erminig
|
||||
PAK_USER := pak
|
||||
|
||||
all: prepare_env create_db create_pak_user
|
||||
|
||||
prepare_env:
|
||||
@echo "Création de l'arborescence pour Erminig..."
|
||||
@mkdir -p $(DB_DIR)
|
||||
@mkdir -p /var/govel
|
||||
@chown -R $(PAK_USER):$(PAK_USER) /var/govel || true
|
||||
|
||||
create_db:
|
||||
@echo "Initialisation de la base SQLite Erminig..."
|
||||
@if [ ! -f "$(DB_PATH)" ]; then \
|
||||
sqlite3 $(DB_PATH) < schema.sql; \
|
||||
chown $(PAK_USER):$(PAK_USER) $(DB_PATH); \
|
||||
echo "Base de données créée à $(DB_PATH)"; \
|
||||
else \
|
||||
echo "La base existe déjà, on touche pas."; \
|
||||
fi
|
||||
|
||||
create_pak_user:
|
||||
@echo "Création de l'utilisateur '$(PAK_USER)'..."
|
||||
@if ! id -u $(PAK_USER) >/dev/null 2>&1; then \
|
||||
useradd -r -m -d /var/govel -s /bin/bash $(PAK_USER); \
|
||||
echo "Utilisateur '$(PAK_USER)' créé."; \
|
||||
else \
|
||||
echo "L'utilisateur '$(PAK_USER)' existe déjà."; \
|
||||
fi
|
||||
|
||||
clean:
|
||||
@echo "Suppression de la base et de l'arborescence..."
|
||||
@rm -f $(DB_PATH)
|
||||
@rm -rf /var/govel
|
||||
|
||||
.PHONY: all prepare_env create_db create_pak_user clean
|
||||
37
schema.sql
Normal file
37
schema.sql
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
-- schema.sql - Structure initiale de la base Erminig
|
||||
|
||||
CREATE TABLE packages (
|
||||
name TEXT PRIMARY KEY,
|
||||
version TEXT NOT NULL,
|
||||
revision INTEGER NOT NULL,
|
||||
status TEXT NOT NULL, -- draft, built, failed, validated
|
||||
blocked BOOLEAN NOT NULL DEFAULT 0,
|
||||
created_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TEXT DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
CREATE TABLE sources (
|
||||
package_name TEXT,
|
||||
url TEXT,
|
||||
hash TEXT,
|
||||
FOREIGN KEY (package_name) REFERENCES packages(name)
|
||||
);
|
||||
|
||||
CREATE TABLE dependencies (
|
||||
package_name TEXT,
|
||||
dependency TEXT,
|
||||
type TEXT, -- build, runtime, check
|
||||
FOREIGN KEY (package_name) REFERENCES packages(name)
|
||||
);
|
||||
|
||||
CREATE TABLE builds (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
package_name TEXT,
|
||||
version TEXT,
|
||||
revision INTEGER,
|
||||
start_time TEXT DEFAULT CURRENT_TIMESTAMP,
|
||||
end_time TEXT,
|
||||
status TEXT, -- success, failed
|
||||
log TEXT,
|
||||
FOREIGN KEY (package_name) REFERENCES packages(name)
|
||||
);
|
||||
Loading…
Add table
Add a link
Reference in a new issue