“expect “はbashコンソールで対話を自動化する手段である.
sudo apt-get install -y expect
githubへgitをgit push
する時にインタラクティブが生じる.ユーザー名とパスワードである.
これを自動入力してオートマティックにできるようにする.
#!/usr/bin/expect
set USER [lindex $argv 0]
set PW [lindex $argv 1]
set Prompt "\[#$%>\]"
set timeout 5
spawn git push
expect {
-glob "Username for 'https://github.com':" {
send -- "${USER}\n"
}
}
expect {
-glob "Password for 'https://${USER}@github.com':" {
send -- "${PW}\n"
}
}
expect {
-glob "${Prompt}" {
# interact
exit 0
}
}
使い方
- 上記スクリプトを
~/lib/github.exp
などの名前に変更する - $ ~/lib/github.exp USERNAME PASSWORD
- githubにpushできる.
(前準備として,リポジトリを作っておくこと.Everything up-to-dateなどが表示されればok)
Reference:
http://qiita.com/ine1127/items/cd6bc91174635016db9b