Follow me
RSS feed
My sources
My Viadeo

ROSXAuth is dead !

Greg | 23 Jul 2009

rubyDans mon article d'hier soir, je vous annonçais fièrement la mise à disposition des sources de GemMenu et du module ROSXAuth. Ce dernier a été développé dans l'unique but de permettre d'exécuter une commande avec des privilèges d'administrateur sous Mac. Comme je l'avais également signalé, ce développement était quelque peu bancal qui m'obligeait à passer par un sudo ! De plus, l'utilisation de ROSXAuth engendrait une dépendance dans GemMenu ce qui ne me plaisait pas trop. Et bien le problème est résolu d'une façon qui m'a valu de me répéter en boucle le fameux dicton "Pourquoi faire simple quand on peut faire compliquer ?"

Voici la solution que j'ai adoptée :

require 'osx/cocoa'

script = OSX::NSAppleScript.alloc.initWithSource(
  "do shell script \"/usr/bin/gem update -y\" with administrator privileges"
)
errorInfo = OSX::OCObject.new
data = script.executeAndReturnError(errorInfo)
if data.nil?
  OSX::NSLog(
    "UPDATE ERROR: #{errorInfo.objectForKey(OSX::NSAppleScriptErrorMessage)}"
  )
else
  puts data.stringValue()
end

Eh oui ! Il suffit de passer par AppleScript. C'est tellement simple que je suis tombé à côté !

Je viens de pousser dans GitHub la version corrigée de GemMenu.

Copyright © 2009 - 2011 Grégoire Lejeune.
All documents licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License, except ones with specified licence.
Powered by Jekyll.