59 lines
1.7 KiB
JavaScript
59 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( './helpers/render' );
|
|
const { treeWalker } = require('./helpers/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 );
|
|
} ).catch( () => {
|
|
process.exit( 1 );
|
|
} );
|