Используя Какао и MacRuby, используйте NSTask. Пример, который выполняет ls -la и печатает вывод:
framework 'Cocoa'
task = NSTask.alloc.init
task.setLaunchPath("/bin/ls")
arguments = NSArray.arrayWithObjects("-l", "-a", nil)
task.setArguments(arguments)
pipe = NSPipe.pipe
task.setStandardOutput(pipe)
file = pipe.fileHandleForReading
task.launch
data = file.readDataToEndOfFile
string = NSString.alloc.initWithData(data, encoding: NSUTF8StringEncoding)
puts "Command returned: "
puts string
К сожалению, включение прав администратора не является тривиальной задачей, особенно при использовании MacRuby. Взгляните на платформу SecurityFoundation и эту ссылку . По сути, вам нужно позвонить
AuthorizationExecuteWithPrivileges(...)
с настроенным AuthorizationRef, путем к инструменту для выполнения, флагами, аргументами. Вот полезный пример здесь (в ObjC), показывающий, как это работает.