Skip to content

Commit

Permalink
Add CLI install instruction and script
Browse files Browse the repository at this point in the history
  • Loading branch information
stefanprodan committed Apr 30, 2020
1 parent 4c6dba2 commit 7739d84
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 0 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,5 @@ Components:
* [Toolkit CLI](docs/cmd/tk.md)
* [Source Controller](https://github.com/fluxcd/source-controller)
* [Kustomize Controller](https://github.com/fluxcd/kustomize-controller)

To install the toolkit CLI, see these [instructions](install/README.md).
37 changes: 37 additions & 0 deletions install/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# TK CLI Installation

Binaries for macOS and Linux AMD64 are available for download on the
[release page](https://github.com/fluxcd/toolkit/releases).

To install the latest release run:

```bash
curl -s https://raw.githubusercontent.com/fluxcd/toolkit/master/install/tk.sh | sudo bash
```

The install script does the following:
* attempts to detect your OS
* downloads and unpacks the release tar file in a temporary directory
* copies the tk binary to `/usr/local/bin`
* removes the temporary directory

## Build from source

Clone the repository:

```bash
git clone https://github.com/fluxcd/toolkit
cd toolkit
```

Build the tk binary (requires go >= 1.14):

```bash
make build
```

Run the binary:

```bash
./bin/tk -h
```
51 changes: 51 additions & 0 deletions install/tk.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#!/usr/bin/env bash

set -e

DEFAULT_BIN_DIR="/usr/local/bin"
BIN_DIR=${1:-"$DEFAULT_BIN_DIR"}

opsys=""
if [[ "$OSTYPE" == linux* ]]; then
opsys=linux
elif [[ "$OSTYPE" == darwin* ]]; then
opsys=darwin
fi

if [[ "$opsys" == "" ]]; then
echo "OS $OSTYPE not supported"
exit 1
fi

if [[ ! -x "$(command -v curl)" ]]; then
echo "curl not found"
exit 1
fi

tmpDir=`mktemp -d`
if [[ ! "$tmpDir" || ! -d "$tmpDir" ]]; then
echo "could not create temp dir"
exit 1
fi

function cleanup {
rm -rf "$tmpDir"
}

trap cleanup EXIT

pushd $tmpDir >& /dev/null

curl -s https://api.github.com/repos/fluxcd/toolkit/releases/latest |\
grep browser_download |\
grep $opsys |\
cut -d '"' -f 4 |\
xargs curl -sL -o tk.tar.gz

tar xzf ./tk.tar.gz

mv ./tk $BIN_DIR

popd >& /dev/null

echo "$(tk --version) installed"

0 comments on commit 7739d84

Please sign in to comment.