dotfiles/build/build.js

57 lines
1.7 KiB
JavaScript

// Using commonjs instead of ejs, because more widely compatible
const inquirer = require( 'inquirer' );
const fs = require( 'fs' );
const path = require( 'path' );
const os = require( 'os' );
const render = require( './render' );
const { treeWalker } = require('./util');
// Prompt user to select a wallpaper (if no path is passed as argument)
const wallpapers = treeWalker( path.join( os.homedir(), '/NextCloud/Wallpapers' ), '*' );
// const wallpapers = fs.readdirSync( path.join( os.homedir(), '/NextCloud/Wallpapers' ) );
const wallpaperChoices = [];
wallpapers.forEach(element => {
const name = element.split( '/' );
wallpaperChoices.push( { 'name': name[ name.length - 1 ].split( '.' )[ 0 ], 'value': element } );
});
// Selection options
const chooseWallpaper = {
'type': 'list',
'name': 'wallpaper',
'message': 'Choose the wallpaper to be used',
'choices': wallpaperChoices,
};
const chooseLockpaper = {
'type': 'list',
'name': 'lockpaper',
'message': 'Choose the lockscreen wallpaper to be used',
'choices': wallpaperChoices,
};
const chooseTheme = {
'type': 'list',
'name': 'theme',
'message': 'Choose the general colourway to be used',
'choices': [
{ name: 'Nordic', value: 'nordic' },
{ name: 'Deep-Dark', value: 'deep-dark' },
{ name: 'Material-You', value: 'material' },
{ name: 'Light', value: 'light' },
{ name: 'Bright', value: 'bright' },
]
}
// TODO: Add argument parsing
const args = process.argv.slice( 2 );
inquirer.default.prompt( [
chooseWallpaper,
chooseLockpaper,
chooseTheme
] ).then( answers => {
render( answers.wallpaper, answers.lockpaper, answers.theme );
} );