# go-installer
**Repository Path**: mtpdx/go-installer
## Basic Information
- **Project Name**: go-installer
- **Description**: https://github.com/kerolloz/go-installer.git
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-08-22
- **Last Updated**: 2024-08-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Go Installer 🐹
> Install Golang on Linux or Mac with hassle of environment variables setting.

[](https://github.com/kerolloz/go-installer/actions/workflows/test.yml)
## How to use it 🤔
### Installing (or even _updating_) Go ⬇️
You can _clone_ the repository and then run `bash go.sh`.
Or by simply running whatever suits you from the following commands (`wget`[^1] or `curl`):
[^1]: the script depends on wget ([1](https://github.com/kerolloz/go-installer/blob/836e09a79411cda39879a0ce8f69f199f4423562/go.sh#L67-L71), [2](https://github.com/kerolloz/go-installer/blob/836e09a79411cda39879a0ce8f69f199f4423562/go.sh#L132))
```bash
# downloads then runs the script
wget https://git.io/go-installer.sh && bash go-installer.sh
```
```bash
# doesn't download the script ~ runs the script directly
bash <(curl -sL https://git.io/go-installer)
```
Now, you can go grab a cup of coffee :coffee:, sit back :relieved: and relax while the magic happens! :crystal_ball:
> **Note**
> By default the script will create `.go` and `go` folders on your _HOME_ directory & add the needed variables to your _PATH_ variable.
`$HOME/.go` is where Go will be installed.
`$HOME/go` is the default workspace.
In order to install Go to another location or set custom workspace. You can set environment variables GOROOT or GOPATH before installing (or uninstalling) Go.
For example:
```bash
export GOROOT=/opt/go # where Go is installed
export GOPATH=$HOME/projects/go # your workspace
```
Read more about [workspaces](https://go.dev/doc/code.html#Workspaces) in Go.
### Specifying a version to install 🧐
By default, the script installs the latest version available.
You can choose what version to install by adding the `--version` flag, followed by the version you want to install.
```
bash go.sh --version 1.19.4
```
### Show Help Message 🍁
To show the following help message use `bash go.sh help`.
### Uninstalling Go ❌
```bash
bash go.sh remove
```
## How it works ⚙️
The script does the following steps:
- Checks if Go is already installed.
- Detects the installed operating system (Linux or Mac).
- Detects system architecture (armv6, armv8, amd64, i386).
- Parses the download page to find the latest version of Go that is available for your platform and architecture.
- Exits if you have the latest version of Go already installed.
- Downloads the latest version of Go.
- Creates the needed directories for workspace and Go binaries.
- Extracts the files of the downloaded package.
- Adds the binaries to PATH environment variable.
- Removes the downloaded installation file.
https://user-images.githubusercontent.com/36763164/207317882-7e50e2de-628e-43f0-bf7c-bee6b1e68001.mp4
🔥 WORKS LIKE A CHARM 🚀