#!/bin/bash
# Licence GPL 3

#####################
## S e t t i n g s ##
#####################

VERSION=0.4.23
AIM=/usr/local/bin/ipfs
DATA_DIR=/var/spool/ipfs/
USER=ipfs

####### ENDE #######

[ "`id -u`" != "0" ] && { echo run as root; exit 1; }

#################
## daemon user ##
#################

adduser $USER --disabled-password --disabled-login --home $DATA_DIR --system


##################
## install ipfs ##
##################

# creat tmp and enter it
cd `mktemp -d`

# select CPU architecture
ARCH=`uname -m`
case "$ARCH" in
    i?86) ARCH=386 ;;
    x86_64) ARCH="amd64" ;;
    *arm*) ARCH="arm" ;;
    *) echo ipfs for $arch not available; exit 1 ;;
esac

#download ...
wget "https://github.com/ipfs/go-ipfs/releases/download/v${VERSION}/go-ipfs_v${VERSION}_linux-${ARCH}.tar.gz"

#extract
tar xzf go-ipfs_*

#delete old one if exit
[ -f $AIM ] && rm $AIM

# install new
cp go-ipfs/ipfs $AIM

#set permissions
chmod 770 $AIM
chown $USER $AIM

## init ipfs
export "IPFS_PATH=$DATA_DIR"
export "HOME=$DATA_DIR"
sudo -E -u ipfs ipfs init --profile=server
#If you're not running ipfs in a hosted environment, use ipfs init"
sed -i 's/127.0.0.1/0.0.0.0/g' $DATA_DIR/config

#go back and delete temp
cd -
rm -r `cd -`


#################
## init skript ##
#################

cp ipfs.initd /etc/init.d/ipfs
sed -i "s/#GID#/`id -g $USER`/g" /etc/init.d/ipfs
sed -i "s/#UID#/`id -u $USER`/g" /etc/init.d/ipfs
sed -i 's|#DATA#|'${DATA_DIR}'|g' /etc/init.d/ipfs
sed -i 's|#AIM#|'${AIM}'|g' /etc/init.d/ipfs
chmod +x /etc/init.d/ipfs
update-rc.d ipfs defaults