Skip to content

Commit e2c2731

Browse files
committed
Merge branch 'main' of gh-personal:khoahuynhdev/dotfiles
2 parents 50c7635 + 00e6506 commit e2c2731

File tree

2 files changed

+89
-0
lines changed

2 files changed

+89
-0
lines changed

install-docker.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/usr/env bash
2+
3+
set -e
4+
5+
sudo apt update && sudo apt upgrade
6+
sudo apt install --no-install-recommends apt-transport-https ca-certificates curl gnupg2
7+
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
8+
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
9+
sudo apt update
10+
sudo apt install docker-ce docker-ce-cli containerd.io
11+
sudo apt install docker-compose-plugin
12+
13+
sudo usermod -aG docker $USER

install-golang.sh

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
#!/bin/bash
2+
3+
set -e # Exit immediately if a command exits with a non-zero status
4+
set -x
5+
6+
# Define variables
7+
GO_URL="https://go.dev/dl/"
8+
ARCH="linux-amd64"
9+
INSTALL_DIR="/usr/local"
10+
TEMP_DIR="/tmp/go-install"
11+
PROFILE_FILE="$HOME/.bashrc" # Change to ~/.zshrc if using zsh
12+
13+
# Fetch latest Go version
14+
LATEST_VERSION=$(curl -s https://go.dev/VERSION?m=text | head -n 1)
15+
GO_TARBALL="${LATEST_VERSION}.${ARCH}.tar.gz"
16+
GO_TARBALL_URL="${GO_URL}${GO_TARBALL}"
17+
CHECKSUM_URL="$GO_URL?mode=json"
18+
JSON_FILE="go_versions.json"
19+
20+
echo "Latest Go version: $LATEST_VERSION"
21+
echo "Downloading $GO_TARBALL from $GO_TARBALL_URL..."
22+
23+
# Create temp directory and download files
24+
mkdir -p "$TEMP_DIR"
25+
cd "$TEMP_DIR"
26+
curl -O "$GO_TARBALL_URL" -v -L
27+
#curl -o $JSON_FILE "$CHECKSUM_URL"
28+
29+
# Verify checksum
30+
#echo "Verifying checksum..."
31+
#sha256sum -c "$(basename "$CHECKSUM_URL")"
32+
33+
# Define the JSON file (or fetch it dynamically)
34+
35+
# Extract the latest stable Go version
36+
#LATEST_VERSION=$(grep -oP '"version":\s*"\Kgo[0-9]+\.[0-9]+\.[0-9]+' "$JSON_FILE" | head -n 1)
37+
38+
# Extract SHA256 checksum for Linux AMD64 tarball
39+
40+
#CHECKSUM=$(awk -v version="$LATEST_VERSION" '
41+
# $0 ~ "\"version\": \"" version "\"" { in_version = 1 }
42+
# in_version && $0 ~ "\"filename\": \"" version ".linux-amd64.tar.gz\"" { in_file = 1 }
43+
# in_file && $0 ~ "\"sha256\": \"" {
44+
# match($0, /"sha256":\s*"([^"]+)"/, arr)
45+
# print arr[1]
46+
# exit
47+
# }
48+
#' "$JSON_FILE")
49+
50+
# Print results
51+
#echo "Latest Go Version: $LATEST_VERSION"
52+
#echo "SHA256: $CHECKSUM"
53+
54+
# Remove existing Go installation if present
55+
if [ -d "${INSTALL_DIR}/go" ]; then
56+
echo "Removing existing Go installation..."
57+
sudo rm -rf "${INSTALL_DIR}/go"
58+
fi
59+
60+
# Extract and install Go
61+
echo "Installing Go..."
62+
sudo tar -C "$INSTALL_DIR" -xzf "$GO_TARBALL"
63+
64+
# Add Go to PATH
65+
if ! grep -q 'export PATH=$PATH:/usr/local/go/bin' "$PROFILE_FILE"; then
66+
echo 'export PATH=$PATH:/usr/local/go/bin' >> "$PROFILE_FILE"
67+
echo 'export PATH=$PATH:$HOME/go/bin' >> "$PROFILE_FILE"
68+
echo "Go has been added to your PATH. Run 'source $PROFILE_FILE' to apply changes."
69+
fi
70+
71+
# Cleanup
72+
echo "Cleaning up..."
73+
rm -rf "$TEMP_DIR"
74+
75+
echo "Go installation completed successfully!"
76+

0 commit comments

Comments
 (0)