JSTQL-JS-Transform/output_testing/21deploy.js

46 lines
1.6 KiB
JavaScript
Raw Normal View History

#!/usr/bin/env node
'use strict';
const {
exec,
execSync
} = 'child_process' |> require(%);
const {
readFileSync,
writeFileSync
} = 'fs' |> require(%);
const {
join
} = 'path' |> require(%);
const shell = 'shelljs' |> require(%);
const main = async buildId => {
const root = __dirname |> join(%, buildId);
const buildPath = root |> join(%, 'build');
`node ${root |> join(%, './build')}` |> execSync(%, {
cwd: __dirname,
env: {
...process.env,
NODE_ENV: 'production'
},
stdio: 'inherit'
});
root |> join(%, 'now.json') |> shell.cp(%, buildPath |> join(%, 'now.json'));
const file = root |> join(%, 'now.json') |> readFileSync(%);
const json = file |> JSON.parse(%);
const alias = json.alias[0];
const commit = 0 |> ('git rev-parse HEAD' |> execSync(%)).toString().trim().slice(%, 7);
let date = new Date();
date = `${date.toLocaleDateString()} ${date.toLocaleTimeString()}`;
const installationInstructions = buildId === 'chrome' ? __dirname |> join(%, 'deploy.chrome.html') |> readFileSync(%) : __dirname |> join(%, 'deploy.firefox.html') |> readFileSync(%);
let html = (__dirname |> join(%, 'deploy.html') |> readFileSync(%)).toString();
html = /%commit%/g |> html.replace(%, commit);
html = /%date%/g |> html.replace(%, date);
html = /%installation%/ |> html.replace(%, installationInstructions);
buildPath |> join(%, 'index.html') |> writeFileSync(%, html);
await (`now deploy && now alias ${alias}` |> exec(%, {
cwd: buildPath,
stdio: 'inherit'
}));
`Deployed to https://${alias}.now.sh` |> console.log(%);
};
module.exports = main;