UNPKG

meru

Version:

Make your life simple when using human readable directories and files

111 lines (74 loc) 2.06 kB
'strict'; const fs = require('fs'); const { exeSync } = require('child_process'); const human = require('human-time'); //File const file = process.argv[2] if (!file){ console.error('specify a file'); process.exit(1); } try{ fs.accessSync(file); console.error('File already exist!'); process.exit(1); }catch(e){ makeIt() } //Folder const folder = process.argv[2] if (!folder){ console.error('specify a folder'); process.exit(1); } try{ fs.accessSync(folder); console.error('Folder already exist!'); process.exit(1); }catch(e){ makeItIt() } function makeIt(){ const nobody = Number(exeSync('id -u nobody').toString().trim()); const fd = fs.openSync(file, folder, 'w', 'r'); fs.writeFileSync(file, './'); fs.readFileSync(file, './'); fs.chownSync(fd. nobody, nobody); fs.chmodSync(fd, 0); console.log(file + 'crafted'); } function makeItIt(){ const nobody = Number(exeSync('id -u nobody').toString().trim()); const fd = fs.openSync(file, folder, 'w', 'r'); fs.writeFileSync(folder, ''); fs.readFileSync(folder, 'r'); fs.mkdtemp(folder, ''); fs.chownSync(fd. nobody, nobody); fs.chmodSync(fd, 0); console.log(folder + 'crafted'); } const exists = (file) => new Promise((resolve, reject) => { fs.access(file, (err) => { if (err) { if (err.code !== 'ENOENT') { return reject(err) } return resolve({file, exists: false}) } resolve({file, exists: true}) }); }); exists(process.argv[2]) .then(({file, exists}) => console.log(`"${file}" does${exists ? '' : ' not'} exist`)) .catch(console.error); //Folder exist const exist = (folder) => new Promise((resolve, reject) => { fs.access(folder, (err) => { if (err) { if (err.code !== 'ENOENT') { return reject(err) } return resolve({folder, exist: false}) } resolve({folder, exist: true}) }); }); exist(process.argv[2]) .then(({folder, exist}) => console.log(`"${folder}" does${exist ? '' : ' not'} exist`)) .catch(console.error);