Created
April 13, 2024 12:12
-
-
Save HaradaKumiko/20b26f82097fb392c4b2dcfbbd59bfbf to your computer and use it in GitHub Desktop.
Script init using bash to init project using go | Alterra Academy
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
clean_project_name() { | |
local input="$1" | |
input=$(echo "$input" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//') | |
input=$(echo "$input" | tr -s '[:space:]' '-') | |
input=$(echo "$input" | sed 's/\-*$//') | |
echo "$input" | |
} | |
install_packages() { | |
go get github.com/google/uuid | |
go get github.com/labstack/echo/v4 | |
go get github.com/labstack/echo/v4/middleware | |
go get github.com/golang-jwt/jwt/v5 | |
go get github.com/labstack/echo-jwt/v4 | |
go get golang.org/x/crypto/argon2 | |
go get github.com/spf13/viper | |
go get -u gorm.io/gorm | |
go get -u gorm.io/driver/mysql | |
} | |
# Belum kelar ntar dipake | |
# content_config_database () { | |
# cat <<EOF >> configs/database.go | |
# package main | |
# func main(){ | |
# // configs.DBinit() | |
# // e := routers.Routes() | |
# // e.Logger.Fatal(e.Start(":8080")) | |
# } | |
# EOF | |
# } | |
# content_main () { | |
# cat <<EOF >> main.go | |
# package main | |
# func main(){ | |
# // configs.DBinit() | |
# // e := routers.Routes() | |
# // e.Logger.Fatal(e.Start(":8080")) | |
# } | |
# EOF | |
# } | |
create_project() { | |
mkdir "$1" | |
cd "$1" || exit | |
git init -q | |
go mod init "$1" | |
install_packages | |
mkdir routes controllers services repositories models middlewares utils helpers configs | |
touch main.go | |
echo "Project '$1' telah dibuat." | |
} | |
echo "===== Create Golang Project =====" | |
while true; do | |
read -p "Masukkan nama project : " project_name_input | |
project_name=$(clean_project_name "$project_name_input") | |
if [ -z "$project_name" ]; then | |
echo "Nama project tidak boleh kosong. Harap masukkan nama yang valid." | |
else | |
if [ -d "$project_name" ]; then | |
echo "Folder dengan nama '$project_name' sudah ada." | |
read -p "Pilih nama lain atau tekan 'x' untuk keluar: " choice | |
if [ "$choice" == "x" ]; then | |
echo "Keluar dari program." | |
exit 1 | |
fi | |
else | |
create_project "$project_name" | |
echo "Init Project Done" | |
break | |
fi | |
fi | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment