Skip to content

Instantly share code, notes, and snippets.

@Dragod
Last active January 7, 2021 10:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Dragod/0d181933822a58554bccfd0f689262b3 to your computer and use it in GitHub Desktop.
Save Dragod/0d181933822a58554bccfd0f689262b3 to your computer and use it in GitHub Desktop.
Node build
const execSync = require('child_process').execSync;
let prompt = require('prompt'),
optimist = require('optimist')
sass = "node-sass --source-map true"
function getBuild(type) {
let map =
{
"core": `${sass} sass/app.scss css/app.css && npx postcss css/app.css -r`,
"admin": `${sass} sass/skins/admin/admin.scss admin/css/admin.css && npx postcss admin/css/admin.css -r`,
"login": `${sass} sass/_imports/login.scss css/login.css && npx postcss css/login.css -r`,
"mobile": `${sass} sass/app-mobile.scss css/app-mobile.css && npx postcss css/app-mobile.css -r`,
"svg": `svg2sprite resources/sprite/svg resources/sprite/dist/sprite.svg`
};
return map[type] || map["core"];
}
// set the overrides
prompt.override = optimist.argv
// Start the prompt
prompt.start();
// Get what to build from the user
prompt.get(['type','brand'], function (err, result)
{
// Log the results.
console.log(`Building: ${result.type}, Brand: ${result.brand}`);
// Build core
if (result.type === 'core')
{
execSync(getBuild("core"),{ stdio: [0, 1, 2] }, function (err, stdout, stderr)
{
if (err)
{
console.error(err);
return;
}
console.log(stdout);
});
}
// Build core & skin
if (result.type === 'core-colors') {
execSync(getBuild("core"), { stdio: [0, 1, 2] }, function (err, stdout, stderr) {
if (err) {
console.error(err);
return;
}
console.log(stdout);
});
execSync(`node build-skin ${result.brand}`, { stdio: [0, 1, 2] });
}
// Build skin
else if (result.type === 'skin') {
execSync(`node build-skin ${result.brand}`, { stdio: [0, 1, 2] });
}
// Build admin
else if (result.type === 'admin') {
execSync(getBuild("admin"), { stdio: [0, 1, 2] }, function (err, stdout, stderr) {
if (err) {
console.error(err);
return;
}
console.log(stdout);
});
}
// Build login
else if (result.type === 'login') {
execSync(getBuild("login"), { stdio: [0, 1, 2] }, function (err, stdout, stderr) {
if (err) {
console.error(err);
return;
}
console.log(stdout);
});
}
// Build mobile
else if (result.type === 'mobile') {
execSync(getBuild("mobile"), { stdio: [0, 1, 2] }, function (err, stdout, stderr) {
if (err) {
console.error(err);
return;
}
console.log(stdout);
});
}
// Build all
else if (result.type === 'all') {
execSync(`${getBuild("core")} && ${getBuild("admin")} && ${getBuild("login")} && ${getBuild("svg")} && node build-skin ${result.brand} && ${getBuild("mobile")}`, { stdio: [0, 1, 2] });
}
// Build svg
else if (result.type === 'svg') {
execSync(getBuild("svg"), { stdio: [0, 1, 2] });
}
else
{
console.log("Brand color was not built as it's set to none")
}
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment