Newer
Older
TelosDB / scripts / init-env.js
import fs from 'fs';
import path from 'path';

/**
 * 初回セットアップを補助するスクリプト
 * .env.example があれば .env にコピーする (上書きはしない)
 */

const projectRoot = process.cwd();
const examplePath = path.join(projectRoot, '.env.example');
const envPath = path.join(projectRoot, '.env');

console.log('--- Initializing Environment ---');

if (fs.existsSync(examplePath)) {
    if (!fs.existsSync(envPath)) {
        fs.copyFileSync(examplePath, envPath);
        console.log('✅ Created .env from .env.example');
    } else {
        console.log('ℹ️ .env already exists. Skipping copy.');
    }
} else {
    console.warn('⚠️ .env.example not found. Skipping initialization.');
}

console.log('\n--- Syncing Resources ---');
const resourceDir = path.join(projectRoot, 'resources');
if (!fs.existsSync(resourceDir)) {
    fs.mkdirSync(resourceDir, { recursive: true });
}

// vec0.dll のコピー (インストーラー用同梱アセット)
const dllSrc = path.join(projectRoot, 'node_modules', 'sqlite-vec-windows-x64', 'vec0.dll');
const dllDest = path.join(resourceDir, 'vec0.dll');

if (fs.existsSync(dllSrc)) {
    fs.copyFileSync(dllSrc, dllDest);
    console.log('✅ Synced vec0.dll to resources/');
} else {
    console.warn('⚠️ vec0.dll not found in node_modules. Make sure to run "bun install" first.');
}

console.log('--- Setup Script Complete ---\n');