#!/bin/bash set -e RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[0;33m' NC='\033[0m' # No Color function warn() { echo -e "${YELLOW}$@${NC}" } function error() { echo -e "${RED}$@${NC}" } function info() { echo -e "${GREEN}$@${NC}" } version=$(curl -fs https://api.github.com/repos/c9s/bbgo/releases/latest | awk -F '"' '/tag_name/{print $4}') osf=$(uname | tr '[:upper:]' '[:lower:]') arch="" case $(uname -m) in x86_64 | ia64) arch="amd64";; arm64 | aarch64 | arm) arch="arm64";; *) echo "unsupported architecture: $(uname -m)" exit 1;; esac dist_file=bbgo-$version-$osf-$arch.tar.gz exchange=max if [[ -n $1 ]] ; then exchange=$1 fi exchange_upper=$(echo -n $exchange | tr 'a-z' 'A-Z') info "downloading..." curl -O -L https://github.com/c9s/bbgo/releases/download/$version/$dist_file tar xzf $dist_file mv bbgo-$osf-$arch bbgo chmod +x bbgo info "downloaded successfully" function gen_dotenv() { read -p "Enter your $exchange_upper API key: " api_key read -p "Enter your $exchange_upper API secret: " api_secret info "generating your .env.local file..." cat < .env.local ${exchange_upper}_API_KEY=$api_key ${exchange_upper}_API_SECRET=$api_secret END info "dotenv is configured successfully" } if [[ -e ".env.local" ]] ; then warn "found an existing .env.local, you will overwrite the existing .env.local file!" read -p "are you sure? (Y/n) " a if [[ $a != "n" ]] ; then gen_dotenv fi else gen_dotenv fi if [[ -e "bbgo.yaml" ]] ; then warn "found existing bbgo.yaml, you will overwrite the existing bbgo.yaml file!" read -p "are you sure? (Y/n) " a if [[ $a == "n" ]] ; then exit fi fi cat < bbgo.yaml --- exchangeStrategies: - on: ${exchange} grid: symbol: BTCUSDT quantity: 0.001 gridNumber: 100 profitSpread: 100.0 upperPrice: 50_000.0 lowerPrice: 10_000.0 long: true END info "config file is generated successfully" echo "================================================================" echo "now you can edit your strategy config file bbgo.yaml to run bbgo" if [[ $osf == "darwin" ]] ; then echo "we found you're using MacOS, you can type:" echo "" echo " open -a TextEdit bbgo.yaml" echo "" else echo "you look like a pro user, you can edit the config by:" echo "" echo " vim bbgo.yaml" echo "" fi echo "To run bbgo just type: " echo "" echo " ./bbgo run" echo "" echo "To stop bbgo, just hit CTRL-C" if [[ $osf == "darwin" ]] ; then open -a TextEdit bbgo.yaml fi