public/genesis.sh 2.8 K raw
1
#!/bin/bash
2
echo "
3
4
 ██████  ███████ ███    ██ ███████ ███████ ██ ███████
5
██       ██      ████   ██ ██      ██      ██ ██
6
██   ███ █████   ██ ██  ██ █████   ███████ ██ ███████
7
██    ██ ██      ██  ██ ██ ██           ██ ██      ██
8
 ██████  ███████ ██   ████ ███████ ███████ ██ ███████
9
10
11
Where building on Ethereum begins
12
13
https://github.com/stevedylandev/genesis
14
15
"
16
17
echo "❯ Do you want to install Foundry? (Y/n)"
18
read install_foundry
19
20
if [[ $install_foundry =~ ^[Nn]$ ]]; then
21
    echo "Skipping Foundry installation..."
22
else
23
    printf "Installing Foundry..."
24
    curl -fsS https://foundry.paradigm.xyz | bash > /dev/null 2>&1
25
26
    foundryup > /dev/null 2>&1
27
28
    printf "\r✔️ Foundry installed    \n"
29
fi
30
31
echo "❯ Do you want to install Helios? (Y/n)"
32
read -n 1 install_helios
33
echo
34
35
if [[ $install_helios =~ ^[Nn]$ ]]; then
36
    echo "Skipping Helios installation..."
37
else
38
    printf "Installing Helios..."
39
    curl -fsS https://raw.githubusercontent.com/a16z/helios/master/heliosup/install | bash > /dev/null 2>&1
40
41
    # Install helios
42
    heliosup > /dev/null 2>&1
43
44
    printf "\r✔️ Helios installed    \n"
45
fi
46
47
echo "❯ Do you want to install Hardhat? (Y/n)"
48
read -n 1 install_hardhat
49
echo
50
51
if [[ $install_hardhat =~ ^[Nn]$ ]]; then
52
    echo "Skipping Hardhat installation..."
53
else
54
    printf "Installing Hardhat..."
55
    if command -v pnpm >/dev/null 2>&1; then
56
        pnpm install -g hardhat > /dev/null 2>&1
57
    elif command -v npm >/dev/null 2>&1; then
58
        npm install -g hardhat > /dev/null 2>&1
59
    elif command -v bun >/dev/null 2>&1; then
60
        bun install -g hardhat > /dev/null 2>&1
61
    else
62
        printf "\rNo package manager found (pnpm, npm, or bun)\n"
63
        exit 1
64
    fi
65
    printf "\r✔️ HardHat installed    \n"
66
fi
67
68
echo "❯ Do you want to install Solc? (Y/n)"
69
read -n 1 install_solc
70
echo
71
72
if [[ $install_solc =~ ^[Nn]$ ]]; then
73
    echo "Skipping Solc installation..."
74
else
75
    printf "Installing Solc..."
76
    if command -v npm >/dev/null 2>&1; then
77
        npm install --global solc > /dev/null 2>&1
78
    else
79
        printf "\rNpm not found\n"
80
        exit 1
81
    fi
82
    printf "\r✔️ Solc installed    \n"
83
fi
84
85
86
echo "❯ Do you want to create a new wallet? (Y/n)"
87
read -n 1 create_wallet
88
echo
89
90
if [[ $create_wallet =~ ^[Nn]$ ]]; then
91
    echo "Skipping wallet creation..."
92
else
93
    echo "❯ What do you want to name your wallet?"
94
    read wallet_name
95
    cast wallet new --password ~/.foundry/keystores $wallet_name
96
fi
97
98
echo "
99
✔️ Installation complete!
100
101
Start a new project with 'forge init counter'
102
"