ducki
Version:
Simple CLI for working with KiCad projects.
40 lines (30 loc) • 1.14 kB
text/typescript
import fs from "fs";
//import { homedir } from "os";
import { dirname, join, resolve as _resolve } from "path";
import { fileURLToPath } from 'node:url';
const __dirname = dirname(fileURLToPath(import.meta.url));
export type ResolveFunc = (...args: Array<string>) => string;
export function createResolve(basePath: string): ResolveFunc {
return function(...args: Array<string>): string {
return _resolve(basePath, ...args);
};
}
const baseResolve = createResolve(join(__dirname, ".."));
export function resolve(...args: Array<string>): string {
return baseResolve(...args);
}
const Paths = [
"/Applications/KiCad/KiCad.app/Contents/MacOS/kicad-cli",
// join(homedir(), ".ducki/Kicad/KiCad.app/Contents/MacOS/kicad-cli"),
// baseResolve("third-party/Kicad/KiCad.app/Contents/MacOS/kicad-cli"),
];
const OK = fs.constants.F_OK | fs.constants.R_OK | fs.constants.X_OK;
export function getKicadPath(): string {
for (const path of Paths) {
try {
fs.accessSync(path, OK);
} catch (e) { continue; }
return path;
}
throw new Error("No Kicad detected.");
}