Инициализация
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
#/bin/sh
|
||||
|
||||
SYSTEM_DIR="/calista"
|
||||
REGISTRY_FILE="$SYSTEM_DIR/registry.db"
|
||||
USER=$(whoami)
|
||||
|
||||
# Проверяем, существует ли файл реестра
|
||||
if [ -f "$REGISTRY_FILE" ]; then
|
||||
echo "Ошибка: Файл реестра уже существует: $REGISTRY_FILE"
|
||||
echo "Инициализация запрещена. Если вы хотите пересоздать реестр, удалите файл вручную."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Файла нет — создаём директорию (если её нет)
|
||||
if [ ! -d "$SYSTEM_DIR" ]; then
|
||||
mkdir -p "$SYSTEM_DIR"
|
||||
if [ ! -d "$SYSTEM_DIR" ]; then
|
||||
echo "Критическая ошибка: Не удалось создать системную директорию"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Создаём базу данных и таблицы
|
||||
echo "Создаём файл реестра: $REGISTRY_FILE"
|
||||
|
||||
#Calista log
|
||||
sqlite3 "$REGISTRY_FILE" <<EOF
|
||||
CREATE TABLE IF NOT EXISTS calista_log (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
type TEXT NOT NULL, -- 'error', 'info'
|
||||
user TEXT NOT NULL,
|
||||
details TEXT, -- дополнительная информация
|
||||
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
EOF
|
||||
|
||||
sqlite3 "$REGISTRY_FILE" <<EOF
|
||||
INSERT INTO calista_log (type, user, details) VALUES ('info', '$USER', 'Регистр Calista инициализирован успешно');
|
||||
INSERT INTO calista_log (type, user, details) VALUES ('info', '$USER', 'Путь к реестру - $REGISTRY_FILE');
|
||||
EOF
|
||||
|
||||
#Создание таблицы компонентов
|
||||
sqlite3 "$REGISTRY_FILE" <<EOF
|
||||
CREATE TABLE IF NOT EXISTS components (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT UNIQUE NOT NULL, -- уникальный идентификатор компонента (cpm, cgl)
|
||||
version TEXT, -- версия
|
||||
source TEXT, -- git / local
|
||||
description TEXT, -- описание
|
||||
installed_at TIMESTAMP -- время установки
|
||||
);
|
||||
EOF
|
||||
|
||||
#Создание таблицы устройств
|
||||
sqlite3 "$REGISTRY_FILE" <<EOF
|
||||
-- Таблица устройств (текущее состояние системы)
|
||||
CREATE TABLE IF NOT EXISTS devices (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
bus TEXT NOT NULL, -- 'pci', 'usb'
|
||||
vendor TEXT NOT NULL, -- '0x8086'
|
||||
device TEXT NOT NULL, -- '0x4222'
|
||||
subvendor TEXT, -- '0x1179' (опционально)
|
||||
subdevice TEXT, -- '0xff10' (опционально)
|
||||
name TEXT DEFAULT 'unknown', -- 'Intel 3945ABG Wi-Fi'
|
||||
status TEXT DEFAULT 'unknown', -- 'installed', 'not_installed', 'builtin', 'unknown'
|
||||
driver TEXT, -- 'wpi', 'nvidia', 'snd_hda'
|
||||
module_path TEXT, -- путь к модулю (если известен)
|
||||
detected_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
UNIQUE(bus, vendor, device, subvendor, subdevice)
|
||||
);
|
||||
EOF
|
||||
Reference in New Issue
Block a user