Merge pull request #347 from ethcore/install-parity-unf
install parity script
This commit is contained in:
commit
d7365f8a30
@ -1,5 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
|
||||
|
||||
PARITY_DEB_URL=https://github.com/ethcore/parity/releases/download/beta-0.9/parity_0.9.0-0_amd64.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 https://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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user