import fs from 'fs';
import path from 'path';
import readline from 'readline';

const askQuestion = question => {
    const rl = readline.createInterface({
        input: process.stdin,
        output: process.stdout
    });

    return new Promise(resolve =>
        rl.question(question, answer => {
            rl.close();
            resolve(answer);
        })
    );
};

const installPath = await askQuestion('Enter your Foundry install path: ');

// Determine if it's an Electron install (nested structure)
const nested = fs.existsSync(path.join(installPath, 'resources', 'app'));
const fileRoot = nested ? path.join(installPath, 'resources', 'app') : installPath;

try {
    await fs.promises.mkdir('foundry');
} catch (e) {
    if (e.code !== 'EEXIST') throw e;
}

// JavaScript files
for (const p of ['client', 'common', 'tsconfig.json']) {
    try {
        await fs.promises.symlink(path.join(fileRoot, p), path.join('foundry', p));
    } catch (e) {
        if (e.code !== 'EEXIST') throw e;
    }
}

// Language files
try {
    await fs.promises.symlink(path.join(fileRoot, 'public', 'lang'), path.join('foundry', 'lang'));
} catch (e) {
    if (e.code !== 'EEXIST') throw e;
}
