@@ -20,100 +20,137 @@ proc address {} {
2020 send "0xDccf8451070a86183eE70D330C4c43b686E9CF86\t\r"
2121}
2222
23+ proc expect_or_fail {pattern procname {t ""}} {
24+ set old_timeout $::timeout
25+ if {$t ne ""} {
26+ set ::timeout $t
27+ }
28+ expect {
29+ $pattern {
30+ $procname
31+ }
32+ timeout {
33+ puts "Timeout waiting for: $pattern"
34+ exit 1
35+ }
36+ eof {
37+ puts "Unexpected EOF while waiting for: $pattern"
38+ exit 1
39+ }
40+ }
41+ set ::timeout $old_timeout
42+ }
43+
44+ proc expect_optional {pattern procname {t ""}} {
45+ set old_timeout $::timeout
46+ if {$t ne ""} {
47+ set ::timeout $t
48+ }
49+ expect {
50+ $pattern {
51+ $procname
52+ }
53+ timeout {}
54+ eof {
55+ puts "Unexpected EOF while waiting for optional: $pattern"
56+ exit 1
57+ }
58+ }
59+ set ::timeout $old_timeout
60+ }
61+
62+ proc expect_eof {{t ""}} {
63+ set old_timeout $::timeout
64+ if {$t ne ""} {
65+ set ::timeout $t
66+ }
67+ expect {
68+ eof {}
69+ timeout {
70+ if {$t ne ""} {
71+ puts "Timeout waiting for EOF"
72+ exit 1
73+ }
74+ }
75+ }
76+ set ::timeout $old_timeout
77+ }
78+
2379proc default-deployment {} {
24- global spawn_id
25- expect "Select Network"
26- accept_default
80+ expect_or_fail "Select Network" accept_default
2781
28- expect "Select deployment type"
29- accept_default
82+ expect_or_fail "Select deployment type" accept_default
3083
31- expect "Select consensus client"
32- accept_default
84+ expect_or_fail "Select consensus client" accept_default
3385
34- expect "Select execution client"
35- accept_default
86+ expect_optional "Web3signer" yes 5
87+
88+ expect_or_fail "Select execution client" accept_default
3689}
3790
91+ # Called without .env
3892proc all-defaults {} {
39- global spawn_id
4093 default-deployment
4194
42- expect "Configure CL checkpoint sync URL"
43- accept_default
95+ expect_or_fail "Configure CL checkpoint sync URL" accept_default
4496
45- expect "MEV Boost"
46- yes
97+ expect_or_fail "MEV Boost" yes
4798
48- expect "Relays list"
49- accept_default
99+ expect_or_fail "Relays list" accept_default
50100
51- expect "Grafana"
52- yes
101+ expect_optional "MEV Build Factor" yes 120
53102
54- expect "Configure rewards address"
55- address
103+ expect_or_fail "Grafana" yes
56104
57- expect "Configure Graffiti"
58- accept_default
105+ expect_or_fail "Configure rewards address" address
59106
60- expect "Default Graffiti"
61- yes
107+ expect_or_fail "Configure Graffiti" accept_default
62108
63- expect EOF
109+ expect_or_fail "Default Graffiti" yes
110+
111+ expect_eof 300
64112}
65113
114+ # Called after all-defaults, existing .env
66115proc no-mev {} {
67- global spawn_id
68116 default-deployment
69117
70- expect "Configure CL checkpoint sync URL"
71- accept_default
118+ expect_or_fail "Configure CL checkpoint sync URL" accept_default
72119
73- expect "MEV Boost"
74- no
120+ expect_or_fail "MEV Boost" no
75121
76- expect "Grafana"
77- yes
122+ expect_or_fail "Grafana" yes
78123
79- expect "Configure rewards address"
80- address
124+ expect_or_fail "Configure rewards address" accept_default
81125
82- expect "Configure Graffiti"
83- accept_default
126+ expect_or_fail "Configure Graffiti" accept_default
84127
85- expect "Default Graffiti"
86- yes
128+ expect_or_fail "Default Graffiti" yes
87129
88- expect EOF
130+ expect_eof 300
89131}
90132
133+ # Called after all-defaults, existing .env
91134proc no-grafana {} {
92- global spawn_id
93135 default-deployment
94136
95- expect "Configure CL checkpoint sync URL"
96- accept_default
137+ expect_or_fail "Configure CL checkpoint sync URL" accept_default
138+
139+ expect_or_fail "MEV Boost" yes
97140
98- expect "MEV Boost"
99- yes
141+ expect_or_fail "Relays list" accept_default
100142
101- expect "Relays list"
102- accept_default
143+ expect_optional "MEV Build Factor" yes
103144
104- expect "Grafana"
105- no
145+ expect_or_fail "Grafana" no
106146
107- expect "Configure rewards address"
108- address
147+ expect_or_fail "Configure rewards address" accept_default
109148
110- expect "Configure Graffiti"
111- accept_default
149+ expect_or_fail "Configure Graffiti" accept_default
112150
113- expect "Default Graffiti"
114- yes
151+ expect_or_fail "Default Graffiti" yes
115152
116- expect EOF
153+ expect_eof 300
117154}
118155
119156set timeout 5
@@ -124,7 +161,6 @@ if {$argc > 0} {
124161 set action [lindex $argv 0]
125162 switch -- $action {
126163 "all-defaults" all-defaults
127- "no-checkpoint" no-checkpoint
128164 "no-mev" no-mev
129165 "no-grafana" no-grafana
130166 default { puts "Unknown action: $action"; exit 1 }
0 commit comments