diff --git a/src/npm-pkgbuild-cli.mjs b/src/npm-pkgbuild-cli.mjs index 762a0f39..ea222c35 100644 --- a/src/npm-pkgbuild-cli.mjs +++ b/src/npm-pkgbuild-cli.mjs @@ -9,6 +9,7 @@ const { promises } = require("fs"); program .description("create arch linux package from npm") .version(version) + .option("-i ") .option("-w ") .action(async (args, options, logger) => { if (options.w !== undefined) { @@ -17,7 +18,7 @@ program const dest = createWriteStream(join(wd, "PKGBUILD")); - await npm2pkgbuild(process.cwd(), dest); + await npm2pkgbuild(process.cwd(), dest, { installdir : options.i }); const r = await execa("makepkg", ["-f"], { cwd: wd }); console.log(r.stderr); diff --git a/src/npm-pkgbuild.mjs b/src/npm-pkgbuild.mjs index 0c99e267..97fefdbe 100644 --- a/src/npm-pkgbuild.mjs +++ b/src/npm-pkgbuild.mjs @@ -4,7 +4,9 @@ import { promisify } from 'util'; import { finished } from 'stream'; import fs from "fs"; -export async function npm2pkgbuild(dir, out) { +export async function npm2pkgbuild(dir, out, options = {}) { + const installdir = options.installdir || '/'; + const pkgFile = join(dir, "package.json"); const pkg = JSON.parse( await fs.promises.readFile(pkgFile, { encoding: "utf-8" }) @@ -94,7 +96,8 @@ build() { } package() { - (cd "\${srcdir}/${pkg.name}";tar cf - * )|(cd "\${pkgdir}";tar xf - ) + mkdir -p "\${pkgdir}/${installdir}" + (cd "\${srcdir}/${pkg.name}";tar cf - * )|(cd "\${pkgdir}/${installdir}";tar xf - ) } ` );