Aymkdn / assistant-plugins

Des plugins pour les Assistant (comme Google Home, Cortana, Alexa)
https://aymkdn.github.io/assistant-plugins/
MIT License
92 stars 21 forks source link

Macos permission denied #245

Closed PaulLereverend closed 5 years ago

PaulLereverend commented 5 years ago

Bonjour,

Lorsque je tente d'executer une commande sur macos j'ai l'erreur suivante :

[assistant-control-windows] Message d'erreur reçue :  { Error: Command failed: "/Users/assistant-plugins/node_modules/assistant-control-windows/bin/nircmd.exe" pmset sleepnow
/bin/sh: /Users/assistant-plugins/node_modules/assistant-control-windows/bin/nircmd.exe: Permission denied

    at ChildProcess.exithandler (child_process.js:294:12)
    at ChildProcess.emit (events.js:189:13)
    at maybeClose (internal/child_process.js:970:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
  killed: false,
  code: 126,
  signal: null,
  cmd:
   '"/Users/assistant-plugins/node_modules/assistant-control-windows/bin/nircmd.exe" pmset sleepnow' }
[assistant-control-windows] On execute 'pmset sleepnow'

Une erreur identique apparait pour l'ouverture d'application : open -a 'Google Chrome'

Aymkdn commented 5 years ago

Tu as peut être installé en root?

PaulLereverend commented 5 years ago

J'ai corrigé le bug. Voici le code correspondant :

AssistantControlWindows.prototype.nircmd = function(args) {
  if (process.platform === "win32"){
    var path = require('path');
    var exec = require('child_process').exec;
    var nircmd = path.join(__dirname,'bin/nircmd.exe');
    return new Promise(function(prom_res) {
      exec('"'+nircmd+ '" ' +args, {windowsHide:true}, function(error, stdout, stderr) {
        if (error) console.log("[assistant-control-windows] Erreur détectée : ",error);
        if (stderr) console.log("[assistant-control-windows] Message d'erreur reçue : ",error);
        prom_res();
      })
    })
  }else{
    return new Promise(function(prom_res) {
      exec(args, {windowsHide:true}, function(error, stdout, stderr) {
        if (error) console.log("[assistant-control-windows] Erreur détectée : ",error);
        if (stderr) console.log("[assistant-control-windows] Message d'erreur reçue : ",error);
        prom_res();
      })
    })
  }
};