-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.sh
executable file
·105 lines (93 loc) · 5.21 KB
/
build.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/bin/bash
function print_logo() {
echo " _____ _______ _____ _______ "
echo " /\ \ /::\ \ /\ \ /::\ \ "
echo " /::\ \ /::::\ \ /::\ \ /::::\ \ "
echo " \:::\ \ /::::::\ \ /::::\ \ /::::::\ \ "
echo " \:::\ \ /::::::::\ \ /::::::\ \ /::::::::\ \ "
echo " \:::\ \ /:::/~~\:::\ \ /:::/\:::\ \ /:::/~~\:::\ \ "
echo " \:::\ \ /:::/ \:::\ \ /:::/ \:::\ \ /:::/ \:::\ \ "
echo " /::::\ \ /:::/ / \:::\ \ /:::/ \:::\ \ /:::/ / \:::\ \ "
echo " /::::::\ \ /:::/____/ \:::\____\ /:::/ / \:::\ \ /:::/____/ \:::\____\ "
echo " /:::/\:::\ \ |:::| | |:::| | /:::/ / \:::\ ___\ |:::| | |:::| |"
echo " /:::/ \:::\____\|:::|____| |:::| |/:::/____/ ___\:::| ||:::|____| |:::| |"
echo " /:::/ \::/ / \:::\ \ /:::/ / \:::\ \ /\ /:::|____| \:::\ \ /:::/ / "
echo " /:::/ / \/____/ \:::\ \ /:::/ / \:::\ /::\ \::/ / \:::\ \ /:::/ / "
echo " /:::/ / \:::\ /:::/ / \:::\ \:::\ \/____/ \:::\ /:::/ / "
echo "/:::/ / \:::\__/:::/ / \:::\ \:::\____\ \:::\__/:::/ / "
echo "\::/ / \::::::::/ / \:::\ /:::/ / \::::::::/ / "
echo " \/____/ \::::::/ / \:::\/:::/ / \::::::/ / "
echo " \::::/ / \::::::/ / \::::/ / "
echo " \::/____/ \::::/ / \::/____/ "
echo " ~~ \::/____/ ~~ "
echo " ~~ "
echo " "
}
function install_go() {
echo "$INSTALL_GO_MESSAGE"
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
wget https://golang.org/dl/go1.20.5.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.20.5.linux-amd64.tar.gz
echo "export PATH=\$PATH:/usr/local/go/bin" >> ~/.bashrc
source ~/.bashrc
elif [[ "$OSTYPE" == "darwin"* ]]; then
wget https://golang.org/dl/go1.20.5.darwin-amd64.pkg
sudo installer -pkg go1.20.5.darwin-amd64.pkg -target /
elif [[ "$OSTYPE" == "msys" || "$OSTYPE" == "win32" ]]; then
curl -LO https://golang.org/dl/go1.20.5.windows-amd64.msi
msiexec /i go1.20.5.windows-amd64.msi /quiet
echo "setx PATH \"%PATH%;C:\\Go\\bin\"" >> ~/.bashrc
source ~/.bashrc
else
echo "$UNKNOWN_OS_MESSAGE"
exit 1
fi
echo "$GO_INSTALLED_MESSAGE"
}
print_logo
if ! command -v go &> /dev/null; then
install_go
fi
lang_choice=1
if [[ "$lang_choice" == "1" ]]; then
LANGUAGE_DIR="cmd/en"
INSTALL_GO_MESSAGE="Go is not installed. Installing Go..."
UNKNOWN_OS_MESSAGE="Unknown operating system. Please install Go manually."
GO_INSTALLED_MESSAGE="Go has been successfully installed!"
LANGUAGE_SELECTION_MESSAGE="Select the interface language:"
LANGUAGE_PROMPT_MESSAGE="Enter the language number (1 or 2): "
BUILD_MESSAGE="Building the project..."
MOVE_MESSAGE="Moving the compiled file to $DESTINATION..."
COMPLETE_MESSAGE="Build completed! You can run toGo from anywhere."
elif [[ "$lang_choice" == "2" ]]; then
LANGUAGE_DIR="cmd/ru"
INSTALL_GO_MESSAGE="Go не установлен. Устанавливаем Go..."
UNKNOWN_OS_MESSAGE="Неизвестная операционная система. Пожалуйста, установите Go вручную."
GO_INSTALLED_MESSAGE="Go успешно установлен!"
LANGUAGE_SELECTION_MESSAGE="Выберите язык интерфейса:"
LANGUAGE_PROMPT_MESSAGE="Введите номер языка (1 или 2): "
BUILD_MESSAGE="Сборка проекта..."
MOVE_MESSAGE="Перемещение скомпилированного файла в $DESTINATION..."
COMPLETE_MESSAGE="Сборка завершена! Вы можете запустить toGo из любого места."
else
echo "$INVALID_SELECTION_MESSAGE"
exit 1
fi
echo "$BUILD_MESSAGE"
go build -o toGo main.go
if [[ "$OSTYPE" == "linux-gnu"* || "$OSTYPE" == "darwin"* ]]; then
DESTINATION="/usr/local/bin/toGo"
elif [[ "$OSTYPE" == "msys" || "$OSTYPE" == "win32" ]]; then
DESTINATION="$HOME/go/bin/toGo"
else
echo "$UNKNOWN_OS_MESSAGE"
exit 1
fi
echo "$MOVE_MESSAGE"
if [[ "$OSTYPE" == "linux-gnu"* || "$OSTYPE" == "darwin"* ]]; then
sudo mv toGo "$DESTINATION"
sudo chmod +x "$DESTINATION"
else
mv toGo "$DESTINATION"
fi
echo "$COMPLETE_MESSAGE"