#!/bin/bash

set -o errexit
set -x

# all build numbers have been synchronized, get that number
export BUILD=`cat .build-* | sort -n | tail -1 | cut -f1 -d-`
BUILD=$(($BUILD-1))

# do distributed on-board library builds
#./tsctl-glibc-build

# get the source tarball filename
TARBALL=`ls -t ../$(PROJECT)-*.tar.gz | head -1`
// tsctl-src-$BUILD.tar.gz
// tsctl-src-LATEST.tar.gz

FTP1=/u/home/ftp/ts-socket-macrocontrollers/
ts4200_src=$FTP1/ts-4200-linux/sources/
ts4500_src=$FTP1/ts-4500-linux/sources/
ts4700_src=$FTP1/ts-4700-linux/sources/
ts4800_src=$FTP1/ts-4800-linux/sources/
linux86_src=/u/home/ftp/apps/tsctl/
ts4200_bin=$FTP1/ts-4200-linux/binaries/ts-utils
ts4500_bin=$FTP1/ts-4500-linux/binaries/ts-utils
ts4700_bin=$FTP1/ts-4700-linux/binaries/ts-utils
ts4800_bin=$FTP1/ts-4800-linux/binaries/ts-utils
ts7552_bin=/u/home/ftp/ts-arm-sbc/ts-7500-linux/binaries/ts-utils
ts7553_bin=/u/home/ftp/ts-arm-sbc/ts-7500-linux/binaries/ts-utils

# ts7552
# ts7553

# for a given binary, we should have a list of architectures that it suports
# this is easy to find, we just look at the product directories!
# release_app path_to_ftp_dir arch BASE
release_app() {
    mkdir root
    cd root
    mkdir bin etc
    cp ../product_ts$2/tsctl bin
    PREFIX="prefix_ts$3"
    STRIP="${!PREFIX}strip"
    $STRIP bin/tsctl
    cp ../ts$2.dioctl.config etc/dioctl.config
    tar -czf ../tsctl-$2-bin.tar.gz .
    cd ..
    echo $1/tsctl-ts$2-$BUILD.tar.gz
    sudo cp tsctl-$2-bin.tar.gz $1/tsctl-ts$2-$BUILD.tar.gz
    rm tsctl-$2-bin.tar.gz
    sudo ln -sf tsctl-ts$2-$BUILD.tar.gz $1/tsctl-ts$2-LATEST.tar.gz
    rm -fr root
}

# release_lib path_to_ftp_dir arch BASE
release_lib() {
    sudo cp product_ts$2/libtsctl.a $1/libtsctl-ts$2-$BUILD.a
    sudo ln -sf libtsctl-ts$2-$BUILD.a $1/libtsctl-ts$2-LATEST.a
    sudo cp product_ts$2/libtsctlclient.a $1/libtsctlclient-ts$2-$BUILD.a
    sudo ln -sf libtsctlclient-ts$2-$BUILD.a $1/libtsctlclient-ts$2-LATEST.a
}

# tsctl-release
# copy all the cross-compiled products (binaries) to the ftp site
# and create symlinks as needed
# binaries
for I in 4200 4200-ts81x0 4200-ts81x0-tsrelay8 4700 4700-ts81x0 4700-ts81x0-tsrelay8 4500 4500-ts81x0 4500-ts81x0-tsrelay8 4800 4800-ts81x0 4800-ts81x0-tsrelay8; do
    BASE=`echo $I | cut -f1 -d-`
    release_app /u/home/ftp/ts-socket-macrocontrollers/ts-$BASE-linux/binaries/ts-utils $I $BASE
done

for I in 7552 7553; do
    BASE=`echo $I | cut -f1 -d-`
    release_app /u/home/ftp/ts-arm-sbc/ts-$BASE-linux/binaries/ts-utils $I $BASE
done

# libraries
for I in 4200 4200-ts81x0 4200-ts81x0-tsrelay8 4700 4700-ts81x0 4700-ts81x0-tsrelay8 4500 4500-ts81x0 4500-ts81x0-tsrelay8 4800 4800-ts81x0 4800-ts81x0-tsrelay8 4200_debug 4200_debug-ts81x0 4200_debug-ts81x0-tsrelay8 4700_debug 4700_debug-ts81x0 4700_debug-ts81x0-tsrelay8 4500_debug 4500_debug-ts81x0 4500_debug-ts81x0-tsrelay8 4800_debug 4800_debug-ts81x0 4800_debug-ts81x0-tsrelay8; do
    BASE=`echo $I | cut -f1 -d- | cut -f1 -d_`
    release_lib /u/home/ftp/ts-socket-macrocontrollers/ts-$BASE-linux/binaries/ts-utils $I  $BASE
done

for I in 7552 7552_debug 7553 7553_debug; do 
    BASE=`echo $I | cut -f1 -d- | cut -f1 -d_`
    release_lib /u/home/ftp/ts-arm-sbc/ts-$BASE-linux/binaries/ts-utils $I $BASE
done


# Linux X86
strip product_linux86/tsctl
sudo cp product_linux86/tsctl /u/home/ftp/apps/tsctl/tsctl-linux86-$BUILD
sudo ln -sf tsctl-linux86-$BUILD /u/home/ftp/apps/tsctl/tsctl-linux86-LATEST

sudo cp product_linux86/libtsctlclient.a /u/home/ftp/apps/tsctl/libtsctlclient-linux86-$BUILD.a
sudo ln -sf libtsctlclient-linux86-$BUILD /u/home/ftp/apps/tsctl/libtsctlclient-linux86-LATEST.a
sudo cp product_linux86_debug/libtsctlclient.a /u/home/ftp/apps/tsctl/libtsctlclient-linux86_debug-$BUILD.a
sudo ln -sf libtsctlclient-linux86_debug-$BUILD /u/home/ftp/apps/tsctl/libtsctlclient-linux86_debug-LATEST.a

