import fs from "fs";
import path from "path";

import { info } from "../log.js";
import { seperate_lines } from "../util.js";

export type XwebIgnores = {
    files: string[],
    directories: string[]
}

export function read_ignores(): XwebIgnores {
    const IGNORES: XwebIgnores = {
        files: [],
        directories: []
    };

    const IGNORE_FILE_PATH = path.join(process.cwd(), ".xwebignore");
    if (fs.existsSync(IGNORE_FILE_PATH)) {
        info("run/ignores", "Ignore file found");
        const IGNORE_FILE_CONTENT = fs.readFileSync(IGNORE_FILE_PATH, "utf8");
        const IGNORE_FILE_LINES = seperate_lines(IGNORE_FILE_CONTENT);
        for (const LINE of IGNORE_FILE_LINES) {
            if (LINE == "") continue;
            if (LINE.endsWith("/")) {
                const FOLDER_NAME_WITHOUT_SLASH = LINE.slice(0, -1);
                IGNORES.directories.push(FOLDER_NAME_WITHOUT_SLASH);
            } else {
                IGNORES.files.push(LINE);
            }
        }
    } else {
        info("run/ignores", "No ignore file found. Using default ignores (no ignores)");
    }
    return IGNORES;
}