script.exp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/usr/bin/expect -f
  2. #
  3. # This Expect script was generated by autoexpect on Mon Feb 27 18:59:37 2023
  4. # Expect and autoexpect were both written by Don Libes, NIST.
  5. #
  6. # Note that autoexpect does not guarantee a working script. It
  7. # necessarily has to guess about certain things. Two reasons a script
  8. # might fail are:
  9. #
  10. # 1) timing - A surprising number of programs (rn, ksh, zsh, telnet,
  11. # etc.) and devices discard or ignore keystrokes that arrive "too
  12. # quickly" after prompts. If you find your new script hanging up at
  13. # one spot, try adding a short sleep just before the previous send.
  14. # Setting "force_conservative" to 1 (see below) makes Expect do this
  15. # automatically - pausing briefly before sending each character. This
  16. # pacifies every program I know of. The -c flag makes the script do
  17. # this in the first place. The -C flag allows you to define a
  18. # character to toggle this mode off and on.
  19. set force_conservative 0 ;# set to 1 to force conservative mode even if
  20. ;# script wasn't run conservatively originally
  21. if {$force_conservative} {
  22. set send_slow {1 .1}
  23. proc send {ignore arg} {
  24. sleep .1
  25. exp_send -s -- $arg
  26. }
  27. }
  28. #
  29. # 2) differing output - Some programs produce different output each time
  30. # they run. The "date" command is an obvious example. Another is
  31. # ftp, if it produces throughput statistics at the end of a file
  32. # transfer. If this causes a problem, delete these patterns or replace
  33. # them with wildcards. An alternative is to use the -p flag (for
  34. # "prompt") which makes Expect only look for the last line of output
  35. # (i.e., the prompt). The -P flag allows you to define a character to
  36. # toggle this mode off and on.
  37. #
  38. # Read the man page for more info.
  39. #
  40. # -Don
  41. set GITHUB_TOKEN [lindex $argv 0]
  42. set timeout -1
  43. spawn git push https://$GITHUB_TOKEN@github.com/metya/vanity-bot
  44. match_max 100000
  45. expect -exact "Password for 'https://$GITHUB_TOKEN@github.com': "
  46. send -- "\r"
  47. expect eof