%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
var fs = require('fs'); var sudo = require('./'); var exec = require('child_process').exec; function kill(end) { if (process.platform === 'win32') return end(); exec('sudo -k', end); } function icns() { if (process.platform !== 'darwin') return undefined; var path = '/Applications/Electron.app/Contents/Resources/Electron.icns'; try { fs.statSync(path); return path; } catch (error) {} return undefined; } kill( function() { var options = { icns: icns(), name: 'Electron' }; var command = 'echo hello'; if (process.platform === 'win32') { var expected = 'hello\r\n'; } else { var expected = 'hello\n'; } console.log('sudo.exec(' + JSON.stringify(command) + ', ' + JSON.stringify(options) + ')'); sudo.exec(command, options, function(error, stdout, stderr) { console.log('error: ' + error); console.log('stdout: ' + JSON.stringify(stdout)); console.log('stderr: ' + JSON.stringify(stderr)); kill( function() { if (error) throw error; if (stdout !== expected) { throw new Error('stdout != ' + JSON.stringify(expected)); } if (stderr !== "") throw new Error('stderr != ""'); console.log('OK'); } ); } ); } );