calista_main/reginit

73 lines
3.0 KiB
Plaintext
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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