From a64a14419b58f8b9c71242984338550ef005d3d2 Mon Sep 17 00:00:00 2001 From: Thomas Ruoff Date: Fri, 11 Mar 2016 14:52:32 +0100 Subject: [PATCH] switch to callbacks --- cli.js | 23 +++++++++++++---------- swm.js | 24 ++++++++---------------- 2 files changed, 21 insertions(+), 26 deletions(-) diff --git a/cli.js b/cli.js index 95345d6..7dcddc3 100755 --- a/cli.js +++ b/cli.js @@ -18,16 +18,16 @@ if (argv.help || argv.h) { console.log(usage); return; } else if (argv.list || argv.l) { - const devices = swm.getDevices(); - devices - .then(devices => { - console.log('Detected devices:\n'); - Object.keys(devices) - .sort(key => !devices[key].connected) - .forEach(key => console.log(key + ':', connectionStatus(devices[key]))); - }); + const devices = swm.getDevices((err, devices) => { + if (err) { + throw new Error(err); + } + console.log('Detected devices:\n'); + Object.keys(devices) + .sort(key => !devices[key].connected) + .forEach(key => console.log(key + ':', connectionStatus(devices[key]))); + }); } else { - const devices = swm.getDevices(); let selectedMonitors = argv._; if (profile) { @@ -41,7 +41,10 @@ if (argv.help || argv.h) { console.log('Switching on', selectedMonitors.length ? selectedMonitors : 'all connected monitors'); - devices.then(devices => { + swm.getDevices((err, devices) => { + if (err) { + throw new Error(err); + } const xrandrOptions = swm.generateXrandrOptions(selectedMonitors, devices); swm.switchDevices(xrandrOptions); swm.executePostCmd(postCmd); diff --git a/swm.js b/swm.js index 7a3bc1a..026b60b 100644 --- a/swm.js +++ b/swm.js @@ -3,28 +3,20 @@ const xrandrParse = require('xrandr-parse'); const exec = require('child_process').exec; -function executeCmd(cmd) { - return new Promise((resolve, reject) => { - exec(cmd, (err, stdout, stderr) => { - if (err || stderr) { - reject(err); - return; - } - resolve(stdout); - }); - }); +function executeCmd(cmd, callback) { + exec(cmd, callback); } -function getDevices() { - return executeCmd('xrandr').then(stdout => xrandrParse(stdout)); +function getDevices(callback) { + executeCmd('xrandr', (err, stdout) => callback(err, xrandrParse(stdout))); } -function switchDevices(xrandrOptions) { - return executeCmd('xrandr ' + xrandrOptions); +function switchDevices(xrandrOptions, callback) { + executeCmd('xrandr ' + xrandrOptions, callback); } -function executePostCmd(postCmd) { - return executeCmd(postCmd); +function executePostCmd(postCmd, callback) { + executeCmd(postCmd, callback); } function orderDeviceKeys(selectedDevices, devices) {