Last active
January 7, 2021 10:13
-
-
Save Dragod/0d181933822a58554bccfd0f689262b3 to your computer and use it in GitHub Desktop.
Node build
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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