mirror of
https://github.com/Hessenuk/DiscordTickets.git
synced 2024-12-22 07:43:08 +02:00
fix: npx
workaround for PebbleHost
This commit is contained in:
parent
b2790fca40
commit
4a2f85e9eb
@ -5,16 +5,26 @@ const util = require('util');
|
|||||||
const exec = util.promisify(require('child_process').exec);
|
const exec = util.promisify(require('child_process').exec);
|
||||||
const { short } = require('leeks.js');
|
const { short } = require('leeks.js');
|
||||||
|
|
||||||
|
const fallback = { prisma: './node_modules/prisma/build/index.js' };
|
||||||
|
|
||||||
function log(...strings) {
|
function log(...strings) {
|
||||||
console.log(short('&9[postinstall]&r'), ...strings);
|
console.log(short('&9[postinstall]&r'), ...strings);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function npx(cmd) {
|
async function npx(cmd) {
|
||||||
|
const parts = cmd.split(' ');
|
||||||
|
// fallback for environments with no symlink/npx support (PebbleHost)
|
||||||
|
if (!fs.existsSync(`./node_modules/.bin/${parts[0]}`)) {
|
||||||
|
const x = parts.shift();
|
||||||
|
cmd = 'node ' + fallback[x] + ' ' + parts.join(' ');
|
||||||
|
} else {
|
||||||
|
cmd = 'npx ' + cmd;
|
||||||
|
}
|
||||||
log(`> ${cmd}`);
|
log(`> ${cmd}`);
|
||||||
const {
|
const {
|
||||||
stderr,
|
stderr,
|
||||||
stdout,
|
stdout,
|
||||||
} = await exec('npx ' + cmd);
|
} = await exec(cmd);
|
||||||
if (stdout) console.log(stdout.toString());
|
if (stdout) console.log(stdout.toString());
|
||||||
if (stderr) console.log(stderr.toString());
|
if (stderr) console.log(stderr.toString());
|
||||||
}
|
}
|
||||||
@ -32,11 +42,17 @@ if (!providers.includes(provider)) throw new Error(`DB_PROVIDER must be one of:
|
|||||||
log(`provider=${provider}`);
|
log(`provider=${provider}`);
|
||||||
log(`copying ${provider} schema & migrations`);
|
log(`copying ${provider} schema & migrations`);
|
||||||
|
|
||||||
if (!fs.existsSync('./prisma')) fs.mkdirSync('./prisma');
|
if (fs.existsSync('./prisma')) {
|
||||||
|
fs.rmSync('./prisma', {
|
||||||
|
force: true,
|
||||||
|
recursive: true,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
fs.mkdirSync('./prisma');
|
||||||
|
}
|
||||||
fs.copySync(`./db/${provider}`, './prisma'); // copy schema & migrations
|
fs.copySync(`./db/${provider}`, './prisma'); // copy schema & migrations
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
await npx('prisma generate');
|
await npx('prisma generate');
|
||||||
await npx('prisma migrate deploy');
|
await npx('prisma migrate deploy');
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user