2020-03-06 15:14:23 +00:00

58 lines
1.4 KiB
JavaScript

const drivelist = require('drivelist');
const fileSize = require('filesize')
const { exec } = require("child_process");
async function getDrives() {
const drives = await drivelist.list();
drives.forEach(function (item) {
item.size = fileSize(item.size)
if (item.mountpoints.length > 0) {
item.path = item.mountpoints[0].path
} else {
item.path = 'N/A'
}
})
return drives
}
async function mount(path1, path2) {
return new Promise(function (resolve, reject) {
exec(`sudo mount ${path1} ${path2}`, (error, stdout, stderr) => {
if (error) {
if (error.message.includes('already mounted')) {
resolve(true)
return;
} else {
resolve(false)
return;
}
} if (stderr) {
resolve(false)
return;
}
resolve(true)
})
})
}
async function unMount(path1) {
return new Promise(function (resolve, reject) {
exec(`sudo umount ${path1}`, (error, stdout, stderr) => {
if (error) {
resolve(false)
return;
} if (stderr) {
resolve(false)
return;
}
resolve(true)
})
})
}
module.exports = {
getDrives,
mount,
unMount
}