[tor-commits] [ooni-probe/master] fixes and enhancements to psipshon install script

art at torproject.org art at torproject.org
Wed Dec 2 11:49:13 UTC 2015


commit 0be99e191c0f13067ffea5d71825be8127dc0478
Author: juga0 <juga>
Date:   Tue Nov 10 17:35:09 2015 +0000

    fixes and enhancements to psipshon install script
    
    * don't clone repository if the directory already exists
    * eliminate duplicated lines copying the server file
    * don't compile ssh client if the file already exists
    * fix syntax of line checking if a virtualenv is activated
    * fix psiphon directory path
    * remove x flag
    * remove commented lines for running psiphon
    * replace source command by dot
    * add variables for psiphon repo url and ooni virtualenv path
    * fix identation
---
 scripts/psiphon_install.sh |   89 ++++++++++++++++++++++----------------------
 1 file changed, 44 insertions(+), 45 deletions(-)

diff --git a/scripts/psiphon_install.sh b/scripts/psiphon_install.sh
index 208aa83..e5b2a78 100755
--- a/scripts/psiphon_install.sh
+++ b/scripts/psiphon_install.sh
@@ -3,13 +3,15 @@
 #FIXME remove x
 set -ex
 
-PSIPHON_PATH=$HOME/test
+PSIPHON_PATH=$HOME
 PSIPHON_PYCLIENT_PATH=$PSIPHON_PATH/psiphon-circumvention-system/pyclient
+PSIPHON_REPO_URL=https://bitbucket.org/psiphon/psiphon-circumvention-system
+OONI_VIRTUALENV_PATH=$HOME/.virtualenvs/ooniprobe
 
 mkdir -p $PSIPHON_PATH
 
 command_exists() {
-	command -v "$@" > /dev/null 2>&1
+  command -v "$@" > /dev/null 2>&1
 }
 
 user="$(id -un 2>/dev/null || true)"
@@ -17,55 +19,59 @@ user="$(id -un 2>/dev/null || true)"
 sh_c='sh -c'
 
 if [ "$user" != 'root' ]; then
-	if command_exists sudo; then
-		sh_c='sudo sh -c -E'
-	elif command_exists su; then
-		sh_c='su -c --preserve-environment'
-	else
-		echo >&2 'Error: this installer needs the ability to run commands as root.'
-		echo >&2 'We are unable to find either "sudo" or "su" available to make this happen.'
-		exit 1
-	fi
+  if command_exists sudo; then
+    sh_c='sudo sh -c -E'
+  elif command_exists su; then
+    sh_c='su -c --preserve-environment'
+  else
+    echo >&2 'Error: this installer needs the ability to run commands as root.'
+    echo >&2 'We are unable to find either "sudo" or "su" available to make this happen.'
+    exit 1
+  fi
 fi
 
 echo "installing dependencies"
 $sh_c "apt-get -y install zlib1g-dev libssl-dev"
 
 if [ -z "command_exists hg" ]; then
-    $sh_c "apt-get -y install mercurial"
+  $sh_c "apt-get -y install mercurial"
 fi
 
 echo "cloning psiphon repository"
 cd $PSIPHON_PATH
-hg clone https://bitbucket.org/psiphon/psiphon-circumvention-system
-echo "psiphon repository cloned"
+if [ ! -d "psiphon-circumvention-system" ]; then
+  hg clone $PSIPHON_REPO_URL
+  echo "psiphon repository cloned"
+fi
 
 # optional, compile their ssh
-echo "compiling psiphon ssh"
-cd psiphon-circumvention-system/Server/3rdParty/openssh-5.9p1/
-./configure
-make
-mv ssh ../../../pyclient/
-make clean
-echo "psiphon ssh compiled"
+if [ ! -f "$PSIPHON_PYCLIENT_PATH/ssh" ]; then
+    echo "compiling psiphon ssh"
+    cd psiphon-circumvention-system/Server/3rdParty/openssh-5.9p1/
+    ./configure
+    make
+    mv ssh ../../../pyclient/
+    make clean
+    echo "psiphon ssh compiled"
+fi
 
 # check if we are in a virtualenv, create it otherwise
 echo "checking virtualenv"
-if [ python -c 'import sys; print hasattr(sys, "real_prefix")'  = "False"];then
-    # we are not in a virtualenv
-    # create a virtualenv
-    # FIXME: assuming debian version will have secure pip/virtualenv
-    if [ -z "command_exists virtualenv" ]; then
-        $sh_c "apt-get -y install python-virtualenv"
-    fi
-    if [ ! -f $HOME/.virtualenvs/ooniprobe/bin/activate ]; then
-      # Set up the virtual environment
-      mkdir -p $HOME/.virtualenvs
-      virtualenv $HOME/.virtualenvs/ooniprobe
-      source $HOME/.virtualenvs/ooniprobe/bin/activate
-    else
-      source $HOME/.virtualenvs/ooniprobe/bin/activate
-    fi
+if [ `python -c 'import sys; print hasattr(sys, "real_prefix")'` = "False" ]; then
+  # not in a virtualenv
+  # create a virtualenv
+  # FIXME: assuming debian version will have secure pip/virtualenv
+  if [ -z "command_exists virtualenv" ]; then
+    $sh_c "apt-get -y install python-virtualenv"
+  fi
+  if [ ! -f $OONI_VIRTUALENV_PATH/bin/activate ]; then
+    # Set up the virtual environment
+    mkdir -p $HOME/.virtualenvs
+    virtualenv $OONI_VIRTUALENV_PATH
+    . $OONI_VIRTUALENV_PATH/bin/activate
+  else
+    . $OONI_VIRTUALENV_PATH/bin/activate
+  fi
 fi
 echo "virtualenv activated"
 
@@ -83,7 +89,7 @@ import json
 
 # Delete 'server_list' if exists
 if os.path.exists("server_list"):
-    # os.remove("server_list")
+   # os.remove("server_list")
     # os.rename("server_list", "server_list")
     pass
 else:
@@ -102,15 +108,8 @@ EOF
 chmod +x psi_generate_dat.py
 ./psi_generate_dat.py
 echo "servers data file created"
-chmod +x psi_generate_dat.py
-./psi_generate_dat.py
-echo "servers data file created"
 mv psi_client.dat $PSIPHON_PYCLIENT_PATH
-
+rm /tmp/psi_generate_dat.py
 
 echo "[+] Installing all of the Python dependency requirements with pip in your virtualenv!";
 pip install -v --timeout 60  jsonpickle pexpect
-
-# run psiphon
-# cd $PSIPHON_PYCLIENT_PATH
-# python psi_client.py





More information about the tor-commits mailing list