11#! /bin/sh
22set -e
33
4- cd /usr/bin
4+ # Function to extract --home value from arguments
5+ get_home_dir () {
6+ home_dir=" $HOME /.evm-single"
57
6- sleep 5
8+ # Parse arguments to find --home
9+ while [ $# -gt 0 ]; do
10+ case " $1 " in
11+ --home)
12+ if [ -n " $2 " ]; then
13+ home_dir=" $2 "
14+ break
15+ fi
16+ ;;
17+ --home=* )
18+ home_dir=" ${1# --home=} "
19+ break
20+ ;;
21+ esac
22+ shift
23+ done
724
8- # Create default rollkit config if missing
9- if [ ! -f " $HOME /.evm-single/config/signer.json" ]; then
10- ./evm-single init --rollkit.node.aggregator=true --rollkit.signer.passphrase $EVM_SIGNER_PASSPHRASE
25+ echo " $home_dir "
26+ }
27+
28+ # Get the home directory (either from --home flag or default)
29+ CONFIG_HOME=$( get_home_dir " $@ " )
30+
31+ if [ ! -f " $CONFIG_HOME /config/node_key.json" ]; then
32+
33+ # Build init flags array
34+ init_flags=" --home=$CONFIG_HOME "
35+
36+ # Add required flags if environment variables are set
37+ if [ -n " $EVM_SIGNER_PASSPHRASE " ]; then
38+ init_flags=" $init_flags --rollkit.node.aggregator=true --rollkit.signer.passphrase $EVM_SIGNER_PASSPHRASE "
39+ fi
40+
41+ INIT_COMMAND=" evm-single init $init_flags "
42+ echo " Create default config with command:"
43+ echo " $INIT_COMMAND "
44+ $INIT_COMMAND
45+ fi
46+
47+
48+ # Build start flags array
49+ default_flags=" --home=$CONFIG_HOME "
50+
51+ # Add required flags if environment variables are set
52+ if [ -n " $EVM_JWT_SECRET " ]; then
53+ default_flags=" $default_flags --evm.jwt-secret $EVM_JWT_SECRET "
54+ fi
55+
56+ if [ -n " $EVM_GENESIS_HASH " ]; then
57+ default_flags=" $default_flags --evm.genesis-hash $EVM_GENESIS_HASH "
58+ fi
59+
60+ if [ -n " $EVM_ENGINE_URL " ]; then
61+ default_flags=" $default_flags --evm.engine-url $EVM_ENGINE_URL "
62+ fi
63+
64+ if [ -n " $EVM_ETH_URL " ]; then
65+ default_flags=" $default_flags --evm.eth-url $EVM_ETH_URL "
66+ fi
67+
68+ if [ -n " $EVM_BLOCK_TIME " ]; then
69+ default_flags=" $default_flags --rollkit.node.block_time $EVM_BLOCK_TIME "
70+ fi
71+
72+ if [ -n " $EVM_SIGNER_PASSPHRASE " ]; then
73+ default_flags=" $default_flags --rollkit.node.aggregator=true --rollkit.signer.passphrase $EVM_SIGNER_PASSPHRASE "
1174fi
1275
13- # Conditionally add --rollkit.da.address if ROLLKIT_DA_ADDRESS is set
14- da_flag=" "
76+ # Conditionally add DA-related flags
1577if [ -n " $DA_ADDRESS " ]; then
16- da_flag= " --rollkit.da.address $DA_ADDRESS "
78+ default_flags= " $default_flags --rollkit.da.address $DA_ADDRESS "
1779fi
1880
19- # Conditionally add --rollkit.da.auth_token if ROLLKIT_DA_AUTH_TOKEN is set
20- da_auth_token_flag=" "
2181if [ -n " $DA_AUTH_TOKEN " ]; then
22- da_auth_token_flag= " --rollkit.da.auth_token $DA_AUTH_TOKEN "
82+ default_flags= " $default_flags --rollkit.da.auth_token $DA_AUTH_TOKEN "
2383fi
2484
25- # Conditionally add --rollkit.da.namespace if ROLLKIT_DA_NAMESPACE is set
26- da_namespace_flag=" "
2785if [ -n " $DA_NAMESPACE " ]; then
28- da_namespace_flag=" --rollkit.da.namespace $DA_NAMESPACE "
29- fi
30-
31- exec ./evm-single start \
32- --evm.jwt-secret $EVM_JWT_SECRET \
33- --evm.genesis-hash $EVM_GENESIS_HASH \
34- --evm.engine-url $EVM_ENGINE_URL \
35- --evm.eth-url $EVM_ETH_URL \
36- --rollkit.node.block_time $EVM_BLOCK_TIME \
37- --rollkit.node.aggregator=true \
38- --rollkit.signer.passphrase $EVM_SIGNER_PASSPHRASE \
39- $da_flag \
40- $da_auth_token_flag \
41- $da_namespace_flag
86+ default_flags=" $default_flags --rollkit.da.namespace $DA_NAMESPACE "
87+ fi
88+
89+ # If no arguments passed, show help
90+ if [ $# -eq 0 ]; then
91+ exec evm-single
92+ fi
93+
94+ # If first argument is "start", apply default flags
95+ if [ " $1 " = " start" ]; then
96+ shift
97+ START_COMMAND=exec evm-single start $default_flags
98+ echo " Create default config with command:"
99+ echo " $START_COMMAND \" $@ \" "
100+ exec $START_COMMAND " $@ "
101+
102+ else
103+ # For any other command/subcommand, pass through directly
104+ exec evm-single " $@ "
105+ fi
0 commit comments