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