From 1e36b3baf42e76ef5dfa96a3a0ffc5eb09d11723 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 11 Jun 2024 22:56:40 +0200 Subject: [PATCH] Select dev env Here we do differ on what's needed/shared --- install/docker.sh | 4 ---- install/mise.sh | 5 ----- install/select-dev-env.sh | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 9 deletions(-) create mode 100644 install/select-dev-env.sh diff --git a/install/docker.sh b/install/docker.sh index 205e7c9..c683c8f 100644 --- a/install/docker.sh +++ b/install/docker.sh @@ -9,7 +9,3 @@ DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker} mkdir -p $DOCKER_CONFIG/cli-plugins curl -sSL https://github.com/docker/compose/releases/download/v$DOCKER_COMPOSE_VERSION/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose - -sudo docker create --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mysql8 -e MYSQL_ROOT_PASSWORD= -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:8.4 -sudo docker create --restart unless-stopped -p "127.0.0.1:6379:6379" --name=redis redis:7 -sudo docker create --restart unless-stopped -p "127.0.0.1:5432:5432" --name=postgres16 -e POSTGRES_HOST_AUTH_METHOD=trust postgres:16 diff --git a/install/mise.sh b/install/mise.sh index 18fb822..9a7e3eb 100644 --- a/install/mise.sh +++ b/install/mise.sh @@ -5,8 +5,3 @@ wget -qO - https://mise.jdx.dev/gpg-key.pub | gpg --dearmor | sudo tee /etc/apt/ echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.gpg arch=amd64] https://mise.jdx.dev/deb stable main" | sudo tee /etc/apt/sources.list.d/mise.list sudo apt update sudo apt install -y mise - -# Install default languages -mise use --global ruby@3.3 -mise use --global node@lts -mise use --global go@latest diff --git a/install/select-dev-env.sh b/install/select-dev-env.sh new file mode 100644 index 0000000..fcacb84 --- /dev/null +++ b/install/select-dev-env.sh @@ -0,0 +1,39 @@ +# Install default programming languages +languages=$(gum choose "Ruby" "Node.js" "Go" "Python" "Java" --no-limit --selected "Ruby","Node.js" --height 7 --header "Select programming languages") + +for language in $languages; do + case $language in + Ruby) + mise use --global ruby@3.3 + ;; + Node.js) + mise use --global node@lts + ;; + Go) + mise use --global go@latest + ;; + Java) + mise use --global java@latest + ;; + Python) + mise use --global python@latest + ;; + esac +done + +# Install default databases +dbs=$(gum choose "MySQL" "PostgreSQL" "Redis" --no-limit --selected "MySQL","Redis" --height 5 --header "Select databases (runs in Docker)") + +for db in $dbs; do + case $db in + MySQL) + sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mysql8 -e MYSQL_ROOT_PASSWORD= -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:8.4 + ;; + PostgreSQL) + sudo docker run -d --restart unless-stopped -p "127.0.0.1:5432:5432" --name=postgres16 -e POSTGRES_HOST_AUTH_METHOD=trust postgres:16 + ;; + Redis) + sudo docker run -d --restart unless-stopped -p "127.0.0.1:6379:6379" --name=redis redis:7 + ;; + esac +done