class AutomateIt::AccountManager::PasswdExpect
AccountManager::PasswdExpect¶ ↑
An AccountManager driver for the passwd
command found on Unix-like systems using the expect
program as a wrapper because the Ruby PTY implementation is unreliable.
Public Instance Methods
passwd(user, password, opts={})
click to toggle source
See AccountManager#passwd
# File lib/automateit/account_manager/passwd_expect.rb, line 15 def passwd(user, password, opts={}) _passwd_helper(user, password, opts) do |user, password, opts| log.silence(Logger::WARN) do interpreter.mktemp do |filename| # Script derived from /usr/share/doc/expect/examples/autopasswd interpreter.render(:text => <<-HERE, :to => filename) set password "#{password}" spawn passwd "#{user}" expect "assword:" sleep 0.1 send "$password\\r" expect "assword:" sleep 0.1 send "$password\\r" expect eof HERE cmd = "expect #{filename}" cmd << " > /dev/null" if opts[:quiet] return(interpreter.sh cmd) end end end end