Files
2026-04-18 23:37:16 +05:00

73 lines
3.0 KiB
Plaintext
Executable File

#/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