Skip to content

Commit c5c9198

Browse files
committed
Modify it2ssh to send a much shorter command. This requires corresponding changes in iterm2 to work.
1 parent a209d7e commit c5c9198

File tree

4 files changed

+27
-170
lines changed

4 files changed

+27
-170
lines changed

Makefile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
utilities/it2ssh: .phony
2-
./buildssh
32
cp utilities/it2ssh ../../OtherResources/
43

54
.phony:

ssh-helpers/conductor.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -448,10 +448,10 @@ drain_stdin() {
448448
}
449449

450450
main() {
451-
local token="$1"
452-
local uniqueid="$2"
453-
local booleanargs="$3"
454-
local sshargs="$4"
451+
local token=$(base64_decode <<< $1)
452+
local uniqueid=$(base64_decode <<< $2)
453+
local booleanargs=$(base64_decode <<< $3)
454+
local sshargs=$(base64_decode <<< $4)
455455

456456
log starting with token $token
457457
log $(env)

ssh-helpers/it2ssh

Lines changed: 0 additions & 158 deletions
This file was deleted.

utilities/it2ssh

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,7 @@ else
4545
die "base64 executable not present on local host"
4646
fi
4747

48-
conductor="c2V0IC1ldW8gcGlwZWZhaWwKbG9naW5fc2hlbGw9IiIKc2hlbGxfbmFtZT0iIgpxdWl0PTAKcHl0aG9uX2RldGVjdGVkPSIwIgpwZXJsX2RldGVjdGVkPSIwIgpleGVjX3NoZWxsPTAKcnVuX2NtZD0wCnJ1bl9weXRob249MApzdHR5X3NldHRpbmdzPSQoY29tbWFuZCBzdHR5IC1nKQpjbGVhbnVwKCkgewogIGNvbW1hbmQgc3R0eSAiJHN0dHlfc2V0dGluZ3MiCn0KZGllKCkgewogICAgbG9nIGRpZSAiJCoiCiAgICBwcmludGYgIlwwMzNbMzFtJXNcMDMzW21cblxyIiAiJCoiID4gL2Rldi9zdGRlcnIKICAgIGNsZWFudXAKICAgIGV4aXQgMQp9Cml0MnNzaF92ZXJib3NlPTAKbG9nKCkgewogICAgaWYgW1sgJGl0MnNzaF92ZXJib3NlID09IDAgXV07IHRoZW4KICAgICAgICByZXR1cm4KICAgIGZpCiAgICBwcmludGYgIlskJF0gJXM6ICVzXG4iICQoZGF0ZSArJUg6JU06JVMpICIkKiIgPj4gL3RtcC9pdDJzc2gubG9nCn0KcHJpbnRfZGNzKCkgewogICAgbG9jYWwgdG9rZW49JDEKICAgIGxvY2FsIHVuaXF1ZWlkPSQyCiAgICBsb2NhbCBib29sYXJncz0kMwogICAgbG9jYWwgc3NoYXJncz0kNAogICAgbG9nIG9zYyBwcmludF9kY3MgJDEgJDIgJDMgJDQKICAgIHByaW50ZiAiXDAzM1AyMDAwcCIKICAgIHByaW50ZiAiJXMgJXMgJXMgLSAlc1xuIiAiJHt0b2tlbn0iICIke3VuaXF1ZWlkfSIgIiR7Ym9vbGFyZ3N9IiAiJHtzc2hhcmdzfSIKfQpmaXJzdF93b3JkKCkgewogICAgbG9jYWwgaW5wdXQ9IiQxIgogICAgcHJpbnRmICIlcyIgJHtpbnB1dCUlICp9Cn0KZHJvcF9maXJzdF93b3JkKCkgewogICAgbG9jYWwgaW5wdXQ9IiQxIgogICAgbG9nIGRyb3AgZmlyc3Qgd29yZCBmcm9tOiAiJGlucHV0IgogICAgaWYgW1sgJGlucHV0ID09ICoiICIqIF1dOyB0aGVuCiAgICAgICAgcHJpbnRmICIlcyIgIiR7aW5wdXQjKiB9IgogICAgZmkKfQppZiBjb21tYW5kIC12IGJhc2U2NCA+IC9kZXYvbnVsbCAyPiAvZGV2L251bGw7IHRoZW4KICAgIGxvZyAiZm91bmQgYmFzZTY0IGNvbW1hbmQiCiAgICBiYXNlNjRfZW5jb2RlKCkgeyBjb21tYW5kIGJhc2U2NCB8IGNvbW1hbmQgdHIgLWQgXFxuXFxyOyB9CiAgICBiYXNlNjRfZGVjb2RlKCkgeyBjb21tYW5kIGJhc2U2NCAtZDsgfQplbGlmIGNvbW1hbmQgLXYgYjY0ZW5jb2RlID4gL2Rldi9udWxsIDI+IC9kZXYvbnVsbDsgdGhlbgogICAgbG9nICJmb3VuZCBiNjRlbmNvZGUsIGI2NGRlY29kZSBjb21tYW5kcyIKICAgIGJhc2U2NF9lbmNvZGUoKSB7IGNvbW1hbmQgYjY0ZW5jb2RlIC0gfCBjb21tYW5kIHNlZCAnMWQ7JGQnIHwgY29tbWFuZCB0ciAtZCBcXG5cXHI7IH0KICAgIGJhc2U2NF9kZWNvZGUoKSB7IGNvbW1hbmQgZm9sZCAtdyA3NiB8IGNvbW1hbmQgYjY0ZGVjb2RlIC1yOyB9CmVsaWYgZGV0ZWN0X3B5dGhvbjsgdGhlbgogICAgbG9nICJ1c2luZyBweXRob24gZm9yIGJhc2U2NCIKICAgIHB5YmFzZTY0KCkgeyBjb21tYW5kICIkcHl0aG9uIiAtYyAiaW1wb3J0IHN5cywgYmFzZTY0OyBnZXRhdHRyKHN5cy5zdGRvdXQsICdidWZmZXInLCBzeXMuc3Rkb3V0KS53cml0ZShiYXNlNjQuc3RhbmRhcmRfYjY0JDEoZ2V0YXR0cihzeXMuc3RkaW4sICdidWZmZXInLCBzeXMuc3RkaW4pLnJlYWQoKSkpIjsgfQogICAgYmFzZTY0X2VuY29kZSgpIHsgcHliYXNlNjQgImVuY29kZSI7IH0KICAgIGJhc2U2NF9kZWNvZGUoKSB7IHB5YmFzZTY0ICJkZWNvZGUiOyB9CmVsaWYgZGV0ZWN0X3Blcmw7IHRoZW4KICAgIGxvZyAidXNpbmcgcGVybCBmb3IgYmFzZTY0IgogICAgYmFzZTY0X2VuY29kZSgpIHsgY29tbWFuZCAiJHBlcmwiIC1NTUlNRTo6QmFzZTY0IC0wNzc3IC1uZSAncHJpbnQgZW5jb2RlX2Jhc2U2NCgkXyknOyB9CiAgICBiYXNlNjRfZGVjb2RlKCkgeyBjb21tYW5kICIkcGVybCIgLU1NSU1FOjpCYXNlNjQgLW5lICdwcmludCBkZWNvZGVfYmFzZTY0KCRfKSc7IH0KZWxzZQogICAgZGllICJiYXNlNjQgZXhlY3V0YWJsZSBub3QgcHJlc2VudCBvbiByZW1vdGUgaG9zdCIKZmkKcGFyc2VfcGFzc3dkX3JlY29yZCgpIHsKICAgIHByaW50ZiAiJXMiICIkKGNvbW1hbmQgZ3JlcCAtbyAnW146XSokJykiCn0KbG9naW5fc2hlbGxfaXNfb2soKSB7CiAgICBsb2cgbG9naW5fc2hlbGxfaXNfb2sKICAgIFsgLW4gIiQxIiBdICYmIGxvZ2luX3NoZWxsPSQoZWNobyAkMSB8IHBhcnNlX3Bhc3N3ZF9yZWNvcmQpCiAgICBbIC1uICIkbG9naW5fc2hlbGwiIC1hIC14ICIkbG9naW5fc2hlbGwiIF0gJiYgcmV0dXJuIDAKICAgIGxvZyAibG9naW4gc2hlbGwgb2YgJGxvZ2luX3NoZWxsIGlzIG9rIgogICAgcmV0dXJuIDEKfQp1c2luZ19nZXRlbnQoKSB7CiAgICBjbWQ9JChjb21tYW5kIC12IGdldGVudCkgJiYgWyAtbiAiJGNtZCIgXSAmJiBvdXRwdXQ9JChjb21tYW5kICIkY21kIiBwYXNzd2QgIiRVU0VSIiAyPi9kZXYvbnVsbCkgXAogICAgJiYgbG9naW5fc2hlbGxfaXNfb2sgIiRvdXRwdXQiCn0KdXNpbmdfaWQoKSB7CiAgICBjbWQ9JChjb21tYW5kIC12IGlkKSAmJiBbIC1uICIkY21kIiBdICYmIG91dHB1dD0kKGNvbW1hbmQgIiRjbWQiIC1QICIkVVNFUiIgMj4vZGV2L251bGwpIFwKICAgICYmIGxvZ2luX3NoZWxsX2lzX29rICIkb3V0cHV0Igp9CmRldGVjdF9weXRob24oKSB7CiAgICBpZiBbIHB5dGhvbl9kZXRlY3RlZCA9ICIxIiBdOyB0aGVuCiAgICAgICAgWyAtbiAiJHB5dGhvbiIgXSAmJiByZXR1cm4gMAogICAgICAgIHJldHVybiAxCiAgICBmaQogICAgcHl0aG9uX2RldGVjdGVkPSIxIgogICAgcHl0aG9uPSQoY29tbWFuZCAtdiBweXRob24zKQogICAgWyAteiAiJHB5dGhvbiIgXSAmJiBweXRob249JChjb21tYW5kIC12IHB5dGhvbjIpCiAgICBbIC16ICIkcHl0aG9uIiBdICYmIHB5dGhvbj0kKGNvbW1hbmQgLXYgcHl0aG9uKQogICAgaWYgWyAteiAiJHB5dGhvbiIgLW8gISAteCAiJHB5dGhvbiIgXTsgdGhlbiBweXRob249IiI7IHJldHVybiAxOyBmaQogICAgbG9nIG5vIHB5dGhvbgogICAgcmV0dXJuIDAKfQp1c2luZ19weXRob24oKSB7CiAgICBkZXRlY3RfcHl0aG9uICYmIG91dHB1dD0kKGNvbW1hbmQgIiRweXRob24iIC1jICJpbXBvcnQgcHdkLCBvczsgcHJpbnQocHdkLmdldHB3dWlkKG9zLmdldGV1aWQoKSkucHdfc2hlbGwpIikgXAogICAgJiYgbG9naW5fc2hlbGw9IiRvdXRwdXQiICYmIGxvZ2luX3NoZWxsX2lzX29rCn0KZGV0ZWN0X3BlcmwoKSB7CiAgICBpZiBbIHBlcmxfZGV0ZWN0ZWQgPSAiMSIgXTsgdGhlbgogICAgICAgIFsgLW4gIiRwZXJsIiBdICYmIHJldHVybiAwCiAgICAgICAgcmV0dXJuIDEKICAgIGZpCiAgICBwZXJsX2RldGVjdGVkPSIxIgogICAgcGVybD0kKGNvbW1hbmQgLXYgcGVybCkKICAgIGlmIFsgLXogIiRwZXJsIiAtbyAhIC14ICIkcGVybCIgXTsgdGhlbiBwZXJsPSIiOyByZXR1cm4gMTsgZmkKICAgIGxvZyBubyBwZXJsCiAgICByZXR1cm4gMAp9CnVzaW5nX3BlcmwoKSB7CiAgICBkZXRlY3RfcGVybCAmJiBvdXRwdXQ9JChjb21tYW5kICIkcGVybCIgLWUgJ215ICRzaGVsbCA9IChnZXRwd3VpZCgkPCkpWzhdOyBwcmludCAkc2hlbGwnKSBcCiAgICAmJiBsb2dpbl9zaGVsbD0iJG91dHB1dCIgJiYgbG9naW5fc2hlbGxfaXNfb2sKfQp1c2luZ19zaGVsbF9lbnYoKSB7CiAgICBbIC1uICIkU0hFTEwiIF0gJiYgbG9naW5fc2hlbGw9IiRTSEVMTCIgJiYgbG9naW5fc2hlbGxfaXNfb2sKfQpndWVzc19sb2dpbl9zaGVsbCgpIHsKICAgIFsgLW4gIiRsb2dpbl9zaGVsbCIgXSB8fCB1c2luZ19nZXRlbnQgfHwgdXNpbmdfaWQgfHwgdXNpbmdfcHl0aG9uIHx8IHVzaW5nX3BlcmwgfHwgdXNpbmdfcGFzc3dkIHx8IHVzaW5nX3NoZWxsX2VudiB8fCBsb2dpbl9zaGVsbD0ic2giCiAgICBwcmludGYgIiVzIiAke2xvZ2luX3NoZWxsfQogICAgbG9nIGxvZ2luIHNoZWxsIGlzICR7bG9naW5fc2hlbGx9Cn0KZXhlY3V0ZV93aXRoX3BlcmwoKSB7CiAgICBpZiBkZXRlY3RfcGVybDsgdGhlbgogICAgICAgIGxvZyBleGVjdXRlIGxvZ2luIHNoZWxsIHVzaW5nIHBlcmwKICAgICAgICBleGVjICIkcGVybCIgIi1lIiAiZXhlYyB7JyRsb2dpbl9zaGVsbCd9ICctJHNoZWxsX25hbWUnIgogICAgZmkKICAgIHJldHVybiAxCn0KZXhlY3V0ZV93aXRoX3B5dGhvbigpIHsKICAgIGlmIGRldGVjdF9weXRob247IHRoZW4KICAgICAgICBsb2cgZXhlY3V0ZSBsb2dpbiBzaGVsbCB1c2luZyBweXRob24KICAgICAgICBleGVjICIkcGVybCIgIi1lIiAiZXhlYyB7JyRsb2dpbl9zaGVsbCd9ICctJHNoZWxsX25hbWUnIgogICAgICAgIGV4ZWMgIiRweXRob24iICItYyIgImltcG9ydCBvczsgb3MuZXhlY2xwKCckbG9naW5fc2hlbGwnLCAnLScgJyRzaGVsbF9uYW1lJykiCiAgICBmaQogICAgcmV0dXJuIDEKfQpleGVjX2xvZ2luX3NoZWxsKCkgewogICAgbG9jYWwgbG9naW5fc2hlbGw9JHsxfQogICAgbG9nIGV4ZWNfbG9naW5fc2hlbGwgIiRsb2dpbl9zaGVsbCIKICAgIFsgIiQoZXhlYyAtYSBlY2hvIGVjaG8gT0sgMj4gL2Rldi9udWxsKSIgPSAiT0siIF0gJiYgZXhlYyAtYSAiLSRzaGVsbF9uYW1lIiAiJGxvZ2luX3NoZWxsIgogICAgbG9nIGZhaWxlZCwgdHJ5IHB5dGhvbgogICAgZXhlY3V0ZV93aXRoX3B5dGhvbgogICAgbG9nIGZhaWxlZCwgdHJ5IHBlcmwKICAgIGV4ZWN1dGVfd2l0aF9wZXJsCiAgICBsb2cgZmFpbGVkLCBqdXN0IHJ1biBpdCB3aXRoIC1sCiAgICBleGVjICIkbG9naW5fc2hlbGwiICItbCIKICAgIGxvZyBmYWlsZWQgY29tcGxldGVseQogICAgcHJpbnRmICIlc1xuIiAiQ291bGQgbm90IGV4ZWN1dGUgdGhlIHNoZWxsICRsb2dpbl9zaGVsbCBhcyBhIGxvZ2luIHNoZWxsIiA+IC9kZXYvc3RkZXJyCiAgICBleGVjICIkbG9naW5fc2hlbGwiCn0KY29uZHVjdG9yX2NtZF9leGVjX2xvZ2luX3NoZWxsKCkgewogICAgbG9nIGNvbmR1Y3Rvcl9jbWRfZXhlY19sb2dpbl9zaGVsbAogICAgZXhlY19zaGVsbD0xCn0KcmVhbGx5X2V4ZWNfbG9naW5fc2hlbGwoKSB7CiAgICBleGVjX2xvZ2luX3NoZWxsICQoY29tbWFuZCBiYXNlbmFtZSAkKGd1ZXNzX2xvZ2luX3NoZWxsKSkKfQpjb25kdWN0b3JfY21kX3NldGVudigpIHsKICAgIGxvZyBjb25kdWN0b3JfY21kX3NldGVudgogICAgaWYgWyAiJCMiIC1uZSAyIF07IHRoZW4KICAgICAgICBsb2cgYmFkIGFyZ3MKICAgICAgICAoZXhpdCAxKQogICAgICAgIHJldHVybgogICAgZmkKICAgIGxvY2FsIG5hbWU9JDEKICAgIGxvY2FsIHZhbHVlPSQyCiAgICBsb2cgc2V0ZW52ICR7bmFtZX09JHt2YWx1ZX0KICAgIGV4cG9ydCAke25hbWV9PSR7dmFsdWV9Cn0KY29uZHVjdG9yX2NtZF9ydW4oKSB7CiAgICBsb2cgY29uZHVjdG9yX2NtZF9ydW4KICAgIHJ1bl9jbWQ9MQp9CmNvbmR1Y3Rvcl9jbWRfcnVucHl0aG9uKCkgewogICAgbG9nIGNvbmR1Y3Rvcl9jbWRfcnVucHl0aG9uCiAgICBydW5fcHl0aG9uPTEKfQpyZWFsbHlfcnVuX3B5dGhvbigpIHsKICBsb2cgcmVhbGx5X3J1bl9weXRob24KICByY2U9JwppbXBvcnQgb3MKaW1wb3J0IHN5cwp0dHlfcGF0aCA9IG9zLnR0eW5hbWUoc3lzLnN0ZG91dC5maWxlbm8oKSkKc3lzLnN0ZGluID0gb3Blbih0dHlfcGF0aCwgInIiKQp0cnk6CiAgcHJpbnQoZiJcMDMzXTEzNTs6e29zLmdldHBpZCgpfVwwMzNcXFwwMzNdMTM1OzplbmQgJyIkYm91bmRhcnkiJyByIDBcMDMzXFwiLCBlbmQ9IiIsIGZsdXNoPVRydWUpCiAgcHJvZ3JhbT0iIgogIGZvciBsaW5lIGluIHN5cy5zdGRpbjoKICAgIGlmIGxpbmUucnN0cmlwKCkgPT0gIkVPRiI6CiAgICAgIGV4ZWMocHJvZ3JhbSkKICAgICAgcHJpbnQoZiJcMDMzXTEzNTs6dW5ob29rXDAzM1xcIiwgZW5kPSIiLCBmbHVzaD1UcnVlKQogICAgICBicmVhawogICAgcHJvZ3JhbSArPSBsaW5lCmV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICBwcmludChlKQonCiAgZXhlYyBweXRob24zIDw8PCAiJHJjZSIKICBsb2cgInVuZXhwZWN0ZWQgcmV0dXJuIGZyb20gZXhlYyIKICBleGl0IDAKfQpyZWFsbHlfcnVuKCkgewogICAgbG9nICJyZWFsbHlfcnVuICRAIgogICAgaWYgWyAiJCMiIC1sdCAxIF07IHRoZW4KICAgICAgICBsb2cgYmFkIGFyZ3MKICAgICAgICAoZXhpdCAxKQogICAgICAgIHJldHVybgogICAgZmkKICAgIGxvZyBleGVjICIkU0hFTEwiIC1jICIkKiIKICAgIHByaW50ZiAiXGVdMTM1OzoiCiAgICBleGVjICIkU0hFTEwiIC1jICIkKiIKICAgIHByaW50ZiAiXGVcXCIKfQpjb25kdWN0b3JfY21kX3NoZWxsKCkgewogICAgbG9nIGNvbmR1Y3Rvcl9jbWRfc2hlbGwKICAgIGlmIFsgIiQjIiAtbHQgMiBdOyB0aGVuCiAgICAgICAgbG9nIGJhZCBhcmdzCiAgICAgICAgKGV4aXQgMSkKICAgICAgICByZXR1cm4KICAgIGZpCiAgICBwcmludGYgIlxlXTEzNTs6IgogICAgc2V0ICtlCiAgICBzZXQgK28gcGlwZWZhaWwKICAgICQqCiAgICBwcmludGYgIlxlXFwiCn0KY29uZHVjdG9yX2NtZF93cml0ZSgpIHsKICAgIGxvZyBjb25kdWN0b3JfY21kX3dyaXRlCiAgICBsb2cgaGF2ZSAkIyBhcmd1bWVudHMKICAgIGlmIFsgIiQjIiAtbmUgMiBdOyB0aGVuCiAgICAgICAgbG9nIGJhZCBhcmdzCiAgICAgICAgKGV4aXQgMSkKICAgICAgICByZXR1cm4KICAgIGZpCiAgICBsb2cgd2lsbCB3cml0ZSB0byAiJDIiCiAgICBsb2NhbCBiNjRkYXRhPSQxCiAgICBsb2NhbCBkZXN0aW5hdGlvbj0kKGV2YWwgcHJpbnRmICVzICIkMiIpCiAgICBta2RpciAtcCAiJGRlc3RpbmF0aW9uIiB8fCB0cnVlCiAgICBsb2cgd3JpdGluZyB0byAkZGVzdGluYXRpb24gYmFzZWQgb24gJDIKICAgIG9sZF91bWFzaz0kKHVtYXNrKQogICAgdW1hc2sgMDAwCiAgICBwcmludGYgIiVzIiAke2I2NGRhdGF9IHwgYmFzZTY0X2RlY29kZSB8IGNvbW1hbmQgdGFyICJ4cHpmIiAiLSIgIi1DIiAiJGRlc3RpbmF0aW9uIgogICAgbG9jYWwgcmM9JD8KICAgIHVtYXNrICIkb2xkX3VtYXNrIgogICAgKGV4aXQgJHJjKQp9CmNvbmR1Y3Rvcl9jbWRfY2QoKSB7CiAgICBsb2cgY2QKICAgIGlmIFsgIiQjIiAtbmUgMSBdOyB0aGVuCiAgICAgICAgbG9nICJiYWQgYXJncyIKICAgICAgICAoZXhpdCAxKQogICAgICAgIHJldHVybgogICAgZmkKICAgIGxvY2FsIGRpcj0kMQogICAgbG9nIGNkICRkaXIKICAgIGNkICIkZGlyIiA+IC9kZXYvbnVsbCAyPiYxCn0KY29uZHVjdG9yX2NtZF9xdWl0KCkgewogICAgbG9nIHF1aXQKICAgIHF1aXQ9MQp9CmNvbmR1Y3Rvcl9jbWRfZ2V0c2hlbGwoKSB7CiAgICBsb2cgZ2V0c2hlbGwKICAgIHByaW50ZiAiXGVdMTM1OzoiCiAgICBzaGVsbD0kKGd1ZXNzX2xvZ2luX3NoZWxsKQogICAgZWNobyAiJHNoZWxsIgogICAgZWNobyB+CiAgICAkc2hlbGwgLS12ZXJzaW9uIHx8IHRydWUKICAgIHByaW50ZiAiXGVcXCIKfQpjb25kdWN0b3JfY21kX2V2YWwoKSB7CiAgICBsb2cgImV2YWwgJEAiCiAgICBsb2NhbCBiNjQ9IiQxIgogICAgbG9jYWwgbXlkaXI9JChta3RlbXAgLWQgIiR7VE1QRElSOi0vdG1wL31pdDJzc2guWFhYWFhYWFhYWFhYIikKICAgIGxvY2FsIGZpbGU9IiRteWRpci9pdDJzc2gtZXZhbCIKICAgIGxvZyAibXlkaXI9JG15ZGlyIHRtcGRpcj0ke1RNUERJUjotL3RtcC99IGZpbGU9JGZpbGUiCiAgICBiYXNlNjRfZGVjb2RlIDw8PCAiJGI2NCIgPiAiJGZpbGUiCiAgICBzb3VyY2UgIiRmaWxlIgogICAgcm0gLWYgIiRmaWxlIgogICAgbG9nICIkZmlsZSIgZmluaXNoZWQgZXhlY3V0aW5nCn0Kd3JpdGUoKSB7CiAgICBwcmludGYgIlxlXTEzNTs6JXNcZVxcIiAiJCoiCn0KaGFuZGxlX2NvbW1hbmQoKSB7CiAgICBsb2NhbCB1bnBhcnNlZD0kezF9CiAgICBsb2cgaGFuZGxlX2NvbW1hbmQgJHVucGFyc2VkCiAgICBsb2NhbCBjbWRfbmFtZT0kKGZpcnN0X3dvcmQgIiR7dW5wYXJzZWR9IikKICAgIGxvZyBjbWRfbmFtZSBpcyAkY21kX25hbWUKICAgIGxvY2FsIGFyZ3M9JChkcm9wX2ZpcnN0X3dvcmQgIiR7dW5wYXJzZWR9IikKICAgIGxvZyBhcmdzIGlzICRhcmdzCiAgICBsb2NhbCBib3VuZGFyeT0iJHtSQU5ET019JHtSQU5ET019JHtSQU5ET019JHtSQU5ET019IgogICAgd3JpdGUgYmVnaW4gJGJvdW5kYXJ5CiAgICBsb2cgaW52b2tlICRjbWRfbmFtZSB3aXRoIGFyZ3VtZW50cyAkYXJncwogICAgc2V0ICtlCiAgICBzZXQgK28gcGlwZWZhaWwKICAgIGlmIFtbICQodHlwZSAtdCBjb25kdWN0b3JfY21kXyR7Y21kX25hbWV9KSA9PSBmdW5jdGlvbiBdXTsgdGhlbgogICAgICAgIGNvbmR1Y3Rvcl9jbWRfJHtjbWRfbmFtZX0gJGFyZ3MKICAgIGVsc2UKICAgICAgICB3cml0ZSAiYmFkIGNvbW1hbmQgJHtjbWRfbmFtZX0iCiAgICAgICAgZmFsc2UKICAgIGZpCiAgICBpZiBbWyAkcnVuX3B5dGhvbiA9PSAxIF1dOyB0aGVuCiAgICAgICAgcmVhbGx5X3J1bl9weXRob24gIiRib3VuZGFyeSIKICAgIGZpCiAgICB3cml0ZSBlbmQgJGJvdW5kYXJ5ICQ/IHIKICAgIGlmIFtbICRxdWl0ID09IDEgXV07IHRoZW4KICAgICAgICBleGl0IDAKICAgIGZpCiAgICBpZiBbWyAkZXhlY19zaGVsbCA9PSAxIF1dOyB0aGVuCiAgICAgICAgbG9nIHN1Y2Nlc3NmdWxseSBleGVjdXRlZCB0aGUgbG9naW4gc2hlbGwuIFVuaG9vay4KICAgICAgICB3cml0ZSB1bmhvb2sKICAgICAgICBjbGVhbnVwCiAgICAgICAgcmVhbGx5X2V4ZWNfbG9naW5fc2hlbGwKICAgIGZpCiAgICBpZiBbWyAkcnVuX2NtZCA9PSAxIF1dOyB0aGVuCiAgICAgICAgbG9nIHN1Y2Nlc3NmdWxseSByYW4gYSBjb21tYW5kLiBVbmhvb2suCiAgICAgICAgd3JpdGUgdW5ob29rCiAgICAgICAgY2xlYW51cAogICAgICAgIHJlYWxseV9ydW4gJGFyZ3MKICAgIGZpCiAgICBzZXQgLWUKICAgIHNldCAtbyBwaXBlZmFpbAp9Cml0ZXJhdGUoKSB7CiAgICBsb2cgaXRlcmF0ZQogICAgbGluZT0iIgogICAgd2hpbGUgdHJ1ZTsgZG8KICAgICAgICByZWFkIHBhcnQKICAgICAgICBsb2cgcmVhZCBwYXJ0ICIkcGFydCIKICAgICAgICBpZiBbIC16ICIkcGFydCIgXTsgdGhlbgogICAgICAgICAgICBicmVhawogICAgICAgIGZpCiAgICAgICAgbGluZT0iJHtsaW5lfSR7cGFydH0iCiAgICBkb25lCiAgICBsb2cgcmVhZCBsaW5lICIkbGluZSIKICAgIGhhbmRsZV9jb21tYW5kICIkbGluZSIKfQpkcmFpbl9zdGRpbigpIHsKICBsb2cgZHJhaW5fc3RkaW4KICBzdHR5IC1lY2hvIC1pY2Fub24gdGltZSAwIG1pbiAwCiAgd2hpbGUgOgogIGRvCiAgICAgIGtleT0iJChwcmludGYgeDsgZGQgYnM9MSBjb3VudD0xIDI+IC9kZXYvbnVsbDsgcHJpbnRmIHgpIgogICAgICBpZiBbWyAiJGtleSIgPT0gInh4IiBdXTsgdGhlbgogICAgICAgICAgbG9nICJkb25lIGRyYWluaW5nIgogICAgICAgICAgYnJlYWsKICAgICAgZmkKICAgICAgbG9nICIka2V5IgogIGRvbmUKICBjbGVhbnVwCn0KbWFpbigpIHsKICAgIGxvY2FsIHRva2VuPSIkMSIKICAgIGxvY2FsIHVuaXF1ZWlkPSIkMiIKICAgIGxvY2FsIGJvb2xlYW5hcmdzPSIkMyIKICAgIGxvY2FsIHNzaGFyZ3M9IiQ0IgogICAgbG9nIHN0YXJ0aW5nIHdpdGggdG9rZW4gJHRva2VuCiAgICBsb2cgJChlbnYpCiAgICBsb2cgInRva2VuOiAkdG9rZW4iCiAgICBsb2cgInVuaXF1ZWlkOiAkdW5pcXVlaWQiCiAgICBsb2cgImJvb2xlYW5hcmdzOiAkYm9vbGVhbmFyZ3MiCiAgICBsb2cgInNzaGFyZ3M6ICRzc2hhcmdzIgogICAgdHJhcCAiY2xlYW51cCIgRVhJVAogICAgZHJhaW5fc3RkaW4KICAgIHN0dHkgLWVjaG8gLW9ubGNyIC1vcG9zdAogICAgcHJpbnRfZGNzICIkdG9rZW4iICIkdW5pcXVlaWQiICIkYm9vbGVhbmFyZ3MiICIkc3NoYXJncyIKICAgIGxvZyBiZWdpbiBtYWlubG9vcAogICAgd2hpbGUgdHJ1ZTsgZG8KICAgICAgICBpdGVyYXRlCiAgICBkb25lCn0K"
49-
50-
# Trying to escape this broke me.
51-
eval_cmd=$(printf %s "J2V2YWwgIiQoZWNobyAiJDAiIHwgdHIgXFxcdlxcXGZcXFxyXFxcYiBcXFwwNDdcXFwxMzRcXFxuXFxcMDQxKSInIA==" | base64_decode)
52-
53-
sanitized="$(printf %s "$conductor" | base64_decode | tr "\!'\n\\" \\b\\v\\r\\f)"
48+
eval_cmd=\''eval "$(echo "$0")"'\'
5449

5550
SSH=/usr/bin/ssh
5651
if [[ "$OSTYPE" == "darwin"* ]]; then
@@ -139,6 +134,21 @@ fi
139134
# to the login shell's history.
140135
ENCODED_BA=$(printf %s "$BOOLEAN_ARGS" | base64_encode)
141136

137+
# Send arguments to conductor.sh
138+
print_osc
139+
printf "1337;it2ssh=$TOKEN ${UNIQUEID} $ENCODED_BA $SSHARGS"
140+
print_st
141+
142+
if [[ $TERM == screen* ]]; then
143+
st='\a\033\\'
144+
else
145+
st='\a'
146+
fi
147+
send_conductor='printf "\033]1337;SendConductor'"$st"'"'
148+
149+
# Run a command on the remote host that instructs iTerm2 to send a script, then reads the script and executes it.
150+
sanitized="$send_conductor"';s="";IFS=""; stty -echo; while read -r l;do [ "$l" = EOF ]&&break; s="$s$l\n"; done; unset IFS; eval "$s"'
151+
142152
# If ssh gets a signal, let it2ssh keep running.
143153
set +e
144154

@@ -150,9 +160,15 @@ exec \
150160
sh \
151161
-c \
152162
"$eval_cmd" \
153-
\'"$sanitized main $TOKEN ${UNIQUEID} $ENCODED_BA $SSHARGS"\'
163+
\'"$sanitized"\'
154164

155165
print_osc
156166
printf "1337;EndSSH=%s" "${UNIQUEID}"
157167
print_st
158168

169+
# If ssh dies after send_conductor is sent, we don't want conductor.sh to go to
170+
# the command line. Read until EndSSH causes a blank line to be sent.
171+
while read l; do
172+
[ -z "$l" ] && break
173+
done
174+

0 commit comments

Comments
 (0)