install parity script

This commit is contained in:
KKudryavtsev 2016-02-04 15:42:49 +00:00
parent a696430545
commit 7e446739a1

View File

@ -1,5 +1,9 @@
#!/usr/bin/env bash
#TODO: replace with the main repo url
PARITY_DEB_URL=https://github.com/jesuscript/scripts/raw/master/parity.deb
function run_installer()
{
####### Init vars
@ -22,6 +26,7 @@ function run_installer()
isGit=false
isRuby=false
isBrew=false
isDocker=false
canContinue=true
depCount=0
depFound=0
@ -97,20 +102,24 @@ function run_installer()
do
read -p "${blue}==>${reset} $1 [Y/n] " imp
case $imp in
[yY] ) echo; break ;;
[yY] ) return 0; break ;;
'' ) echo; break ;;
[nN] ) abortInstall "${red}==>${reset} Process stopped by user. To resume the install run the one-liner command again." ;;
[nN] ) return 1 ;;
* ) echo "Unrecognized option provided. Please provide either 'Y' or 'N'";
esac
done
}
function exe() {
echo "\$ $@"; "$@"
function prompt_for_input() {
while :
do
read -p "$1 " imp
echo $imp
return
done
}
function detectOS() {
if [[ "$OSTYPE" == "linux-gnu" ]]
then
@ -195,7 +204,6 @@ function run_installer()
if [[ -f $ETH_PATH ]]
then
check "Found parity: $ETH_PATH"
echo "$($ETH_PATH -V)"
isEth=true
else
uncheck "parity is missing"
@ -317,20 +325,20 @@ function run_installer()
osx_dependency_installer
info "Adding ethcore repository"
exe brew tap ethcore/ethcore git@github.com:ethcore/homebrew-ethcore.git
brew tap ethcore/ethcore git@github.com:ethcore/homebrew-ethcore.git
echo
info "Updating brew"
exe brew update
brew update
echo
info "Installing parity"
if [[ $isEth == true ]]
then
exe brew reinstall parity
brew reinstall parity
else
exe brew install parity
exe brew linkapps parity
brew install parity
brew linkapps parity
fi
echo
}
@ -356,6 +364,7 @@ function run_installer()
function get_linux_dependencies()
{
find_apt
find_docker
}
function find_apt()
@ -372,38 +381,96 @@ function run_installer()
isApt=false
fi
}
function find_docker()
{
DOCKER_PATH=`which docker 2>/dev/null`
if [[ -f $DOCKER_PATH ]]
then
check "docker"
echo "$($DOCKER_PATH -v)"
isDocker=true
else
isDocker=false
fi
}
function linux_rocksdb_installer()
{
oldpwd=`pwd`
cd /tmp
exe git clone --branch v4.1 --depth=1 https://github.com/facebook/rocksdb.git
cd rocksdb
exe make shared_lib
sudo cp -a librocksdb.so* /usr/lib
sudo ldconfig
cd /tmp
rm -rf /tmp/rocksdb
cd $oldpwd
sudo add-apt-repository -y ppa:giskou/librocksdb
sudo apt-get -f -y install
sudo apt-get update
sudo apt-get install -y librocksdb
}
function linux_installer()
{
info "Installing git"
sudo apt-get install -q -y git
info "Installing dependencies"
sudo apt-get update && sudo apt-get install -q -y git curl g++ wget
echo
info "Installing rocksdb"
linux_rocksdb_installer
echo
info "Installing multirust"
curl -sf https://raw.githubusercontent.com/brson/multirust/master/blastoff.sh | sudo sh -s -- --yes
sudo multirust update nightly
sudo multirust default nightly
echo
info "Installing parity"
wget --quiet --output-document=- http://ethcore.io/download/parity.deb | dpkg --install -
file=/tmp/parity.deb
wget $PARITY_DEB_URL -qO $file
sudo dpkg -i $file
rm $file
}
function install_netstats()
{
echo "install netstats"
if [[ $isDocker == false ]]
then
info "installing docker"
curl -sSL https://get.docker.com/ | sh
fi
dir=$HOME/.netstats
secret=$(prompt_for_input "Please enter the netstats secret:")
instance_name=$(prompt_for_input "Please enter your instance name:")
contact_details=$(prompt_for_input "Please enter your contact details (optional):")
mkdir -p $dir
cat > $dir/app.json << EOL
[
{
"name" : "node-app",
"script" : "app.js",
"log_date_format" : "YYYY-MM-DD HH:mm Z",
"merge_logs" : false,
"watch" : false,
"max_restarts" : 10,
"exec_interpreter" : "node",
"exec_mode" : "fork_mode",
"env":
{
"NODE_ENV" : "production",
"RPC_HOST" : "localhost",
"RPC_PORT" : "8545",
"LISTENING_PORT" : "30303",
"INSTANCE_NAME" : "${instance_name}",
"CONTACT_DETAILS" : "${contact_details}",
"WS_SERVER" : "wss://rpc.ethstats.net",
"WS_SECRET" : "${secret}",
"VERBOSITY" : 2
}
}
]
EOL
sudo docker rm --force netstats-client 2> /dev/null
sudo docker pull ethcore/netstats-client
sudo docker run -d --net=host --name netstats-client -v $dir/app.json:/home/ethnetintel/eth-net-intelligence-api/app.json ethcore/netstats-client
}
function install()
@ -442,11 +509,11 @@ function run_installer()
function finish()
{
# echo
# successHeading "Installation successful!"
echo
successHeading "Installation successful!"
# head "Next steps"
# info "Run ${cyan}\`\`${reset} to get started.${reset}"
# echo
echo
exit 0
}
@ -460,11 +527,26 @@ function run_installer()
echo
# Prompt user to continue or abort
wait_for_user "${b}OK,${reset} let's go!"
if wait_for_user "${b}OK,${reset} let's go!"
then
echo "Installing..."
else
abortInstall "${red}==>${reset} Process stopped by user. To resume the install run the one-liner command again."
fi
# Install dependencies and eth
install
if [[ $OS_TYPE == "linux" ]]
then
echo "Netstats:"
head "Would you like to install and configure a netstats client?"
if wait_for_user "${b}OK,${reset} let's go!"
then
install_netstats
fi
fi
# Check installation
verify_installation