]> git.immae.eu Git - perso/Immae/Projets/Puppet.git/blobdiff - scripts/send_and_run.tcl
Move scripts to separate chunks
[perso/Immae/Projets/Puppet.git] / scripts / send_and_run.tcl
diff --git a/scripts/send_and_run.tcl b/scripts/send_and_run.tcl
new file mode 100755 (executable)
index 0000000..a087a2d
--- /dev/null
@@ -0,0 +1,31 @@
+#!/usr/bin/expect -f
+set dest [lindex $argv 0]
+set password [lindex $argv 1]
+set git_branch [lindex $argv 2]
+set environment [lindex $argv 3]
+set script [lindex $argv 4]
+set files [lrange $argv 4 end]
+
+if {$password == ""} {
+  set ask_password 0
+} else {
+  set ask_password 1
+}
+
+set scriptname [file tail $script]
+
+set sshopts [split "-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o CheckHostIP=no"]
+
+set timeout -1
+spawn scp {*}$sshopts {*}$files $dest:/tmp
+if {$ask_password} {
+  expect "assword:"
+  send "$password\n"
+}
+expect eof
+spawn ssh {*}$sshopts $dest /tmp/$scriptname $git_branch $environment
+if {$ask_password} {
+  expect "assword:"
+  send "$password\n"
+}
+expect eof