diff options
Diffstat (limited to 'install/install-ishtar.sh')
-rw-r--r-- | install/install-ishtar.sh | 349 |
1 files changed, 0 insertions, 349 deletions
diff --git a/install/install-ishtar.sh b/install/install-ishtar.sh deleted file mode 100644 index 4c5995ca0..000000000 --- a/install/install-ishtar.sh +++ /dev/null @@ -1,349 +0,0 @@ -#!/bin/sh - -set -e - -command_exists() { - command -v "$@" > /dev/null 2>&1 -} - -# Check if this is a forked Linux distro -check_forked() { - # Check for lsb_release command existence, it usually exists in forked distros - if command_exists lsb_release; then - # Check if the `-u` option is supported - set +e - lsb_release -a -u > /dev/null 2>&1 - lsb_release_exit_code=$? - set -e - - # Check if the command has exited successfully, it means we're in a forked distro - if [ "$lsb_release_exit_code" = "0" ]; then - # Print info about current distro - cat <<-EOF - You're using '$lsb_dist' version '$dist_version'. -EOF - - # Get the upstream release info - lsb_dist=$(lsb_release -a -u 2>&1 | tr '[:upper:]' '[:lower:]' | grep -E 'id' | cut -d ':' -f 2 | tr -d '[[:space:]]') - dist_version=$(lsb_release -a -u 2>&1 | tr '[:upper:]' '[:lower:]' | grep -E 'codename' | cut -d ':' -f 2 | tr -d '[[:space:]]') - - # Print info about upstream distro - cat <<-EOF - Upstream release is '$lsb_dist' version '$dist_version'. -EOF - fi - fi -} - -do_install() { - - cat >&2 <<-'EOF' - -******************************************************************************* -++++++ Ishtar installation script ++++++ -******************************************************************************* - -EOF - - # check user - user="$(id -un 2>/dev/null || true)" - - sh_c='sh -c' - if [ "$user" != 'root' ]; then - if command_exists sudo; then - sh_c='sudo -E sh -c' - elif command_exists su; then - sh_c='su -c' - else - cat >&2 <<-'EOF' - Error: this installer needs the ability to run commands as root. - We are unable to find either "sudo" or "su" available to make this happen. -EOF - exit 1 - fi - fi - - # check distribution - lsb_dist='' - dist_version='' - if command_exists lsb_release; then - lsb_dist="$(lsb_release -si)" - fi - if [ -z "$lsb_dist" ] && [ -r /etc/lsb-release ]; then - lsb_dist="$(. /etc/lsb-release && echo "$DISTRIB_ID")" - fi - if [ -z "$lsb_dist" ] && [ -r /etc/debian_version ]; then - lsb_dist='debian' - fi - if [ -z "$lsb_dist" ] && [ -r /etc/fedora-release ]; then - lsb_dist='fedora' - fi - if [ -z "$lsb_dist" ] && [ -r /etc/oracle-release ]; then - lsb_dist='oracleserver' - fi - if [ -z "$lsb_dist" ]; then - if [ -r /etc/centos-release ] || [ -r /etc/redhat-release ]; then - lsb_dist='centos' - fi - fi - if [ -z "$lsb_dist" ] && [ -r /etc/os-release ]; then - lsb_dist="$(. /etc/os-release && echo "$ID")" - fi - - lsb_dist="$(echo "$lsb_dist" | tr '[:upper:]' '[:lower:]')" - - case "$lsb_dist" in - - ubuntu) - if command_exists lsb_release; then - dist_version="$(lsb_release --codename | cut -f2)" - fi - if [ -z "$dist_version" ] && [ -r /etc/lsb-release ]; then - dist_version="$(. /etc/lsb-release && echo "$DISTRIB_CODENAME")" - fi - ;; - - debian) - dist_version="$(cat /etc/debian_version | sed 's/\/.*//' | sed 's/\..*//')" - case "$dist_version" in - 8) - dist_version="jessie" - ;; - 7) - dist_version="wheezy" - ;; - esac - ;; - - oracleserver) - # need to switch lsb_dist to match yum repo URL - lsb_dist="oraclelinux" - dist_version="$(rpm -q --whatprovides redhat-release --queryformat "%{VERSION}\n" | sed 's/\/.*//' | sed 's/\..*//' | sed 's/Server*//')" - ;; - - fedora|centos) - dist_version="$(rpm -q --whatprovides redhat-release --queryformat "%{VERSION}\n" | sed 's/\/.*//' | sed 's/\..*//' | sed 's/Server*//')" - ;; - - *) - if command_exists lsb_release; then - dist_version="$(lsb_release --codename | cut -f2)" - fi - if [ -z "$dist_version" ] && [ -r /etc/os-release ]; then - dist_version="$(. /etc/os-release && echo "$VERSION_ID")" - fi - ;; - - - esac - - # Check if this is a forked Linux distro - check_forked - - case "$lsb_dist" in - ubuntu|debian) - ;; - *) - cat >&2 <<-'EOF' - - Sorry. Either your platform is not easily detectable or not supported by - this installer. - -EOF - exit 1 - esac - - default_db='' - cat >&2 <<-'EOF' - -------------------------------------------------------------------------------- - A PostgreSQL database is needed to install Ishtar. If you do not plan to use - a database host on another computer you need to install PostgreSQL. - -EOF - while [ "$default_db" == '' ] - do - read -p '* Default PostgreSQL host? [localhost] ' choice - if [ "$choice" == '' ]; then - default_db='127.0.0.1' - elif [ "$choice" == 'localhost' ]; then - default_db='127.0.0.1' - else - default_db=$choice - fi - done - - webserver='' - cat >&2 <<-'EOF' - -------------------------------------------------------------------------------- - A webserver is needed to make Ishtar available to the outside. - Be carreful if another webserver is already configured, you'll have to serve - your pages on a different port. - -EOF - MSG="" - while [ "$webserver" == '' ] - do - read -p '* Which webserver do you want to use? ([nginx]/none) ' choice - case "$choice" in - nginx ) webserver="nginx";; - none ) webserver="none";; - '' ) webserver="nginx";; - esac - done - - version='' - cat >&2 <<-'EOF' - -------------------------------------------------------------------------------- - Two version are usually available for Ishtar: master/stable. Master is the - bleeding edge version and you can experience problems with this version. - Stable is the safest choice. - -EOF - while [ "$version" == '' ] - do - read -p "* Which version would you like to use? ([stable]/master) " choice - case "$choice" in - stable ) version="stable";; - master ) version="master";; - '' ) version="stable";; - esac - done - - etc_path="/etc/ishtar/"$version"/" - if [ -d "$etc_path" ]; then - echo "" - echo "ERROR: it seems that "$etc_path" already exists. If this is a remnant " - echo "of an old installation please delete this path before installing." - exit 1 - fi - - - install_path='' - cat >&2 <<-'EOF' - -------------------------------------------------------------------------------- - By default Ishtar base path is '/srv/'. With this base path Ishtar is - installed in '/srv/ishtar/choosen_version/'. - -EOF - while [ "$install_path" == '' ] - do - read -p "* Which base install path for Ishtar? [/srv/] " choice - if [ -z "$choice" ]; then - install_path='/srv/' - elif [ ! -d "$choice" ]; then - echo 'Not a valid path.' - else - install_path=$choice - fi - done - - full_install_path=$install_path'/ishtar/'$version - if [ -d "$full_install_path" ]; then - echo "" - echo "ERROR: it seems that "$full_install_path" already exists. If this is a " - echo "remnant of an old installation please delete this directory before installing." - exit 1 - fi - - echo "" - echo "*******************************************************************************" - echo "" - - # Run setup for each distro accordingly - case "$lsb_dist" in - ubuntu|debian) - if [ "$dist_version" != "wheezy" ]; then - cat >&2 <<-'EOF' - - Sorry this script cannot manage your version of Debian/Ubuntu. - -EOF - exit 1 - fi - - export DEBIAN_FRONTEND=noninteractive - ( set -x; $sh_c 'sleep 3; apt-get update' ) - if [ "$default_db" == 'localhost' ]; then - POSTGIS=postgresql-9.1-postgis - if [ "$dist_version" == "jessie" ]; then - POSTGIS=postgresql-9.4-postgis-2.1 - fi - ( set -x; $sh_c 'sleep 3; apt-get install -y -q postgresql '$POSTGIS ) - fi - if ! command_exists git; then - echo "-------------------------------------------------------------------------------"; - echo "Installing git..."; - echo ""; - ( set -x; $sh_c 'sleep 3; apt-get install -y -q git' ) - fi - if ! command_exists apg; then - echo "-------------------------------------------------------------------------------"; - echo "Installing apg..."; - echo ""; - ( set -x; $sh_c 'sleep 3; apt-get install -y -q apg' ) - fi - if ! command_exists pip; then - echo "-------------------------------------------------------------------------------"; - echo "Installing pip..."; - echo ""; - ( set -x; $sh_c 'sleep 3; apt-get install -y -q python-pip' ) - fi - if [ "$webserver" == 'nginx' ]; then - echo "-------------------------------------------------------------------------------"; - echo "Installing nginx and uwsgi..."; - echo ""; - ( set -x; $sh_c 'sleep 3; apt-get install -y -q uwsgi uwsgi-plugin-python nginx' ) - fi - - echo "-------------------------------------------------------------------------------"; - echo "Installing Ishtar dependencies" - echo ""; - ( set -x; $sh_c 'sleep 3; apt-get install -y -q python python-django \ - libjs-jquery libjs-jquery-ui python-pisa python-django-registration \ - python-utidylib python-lxml python-imaging python-django-south \ - python-psycopg2 python-gdal gettext python-unicodecsv memcached \ - python-tidylib python-django-extra-views python-memcache python-dbf' ) - ;; - - esac - echo "-------------------------------------------------------------------------------"; - echo "Installing BeautifulSoup4" - echo ""; - - ( set -x; $sh_c 'pip install BeautifulSoup4==4.3.2' ) - echo "-------------------------------------------------------------------------------"; - echo "Installing django-simple-history" - echo ""; - ( set -x; $sh_c 'pip install git+https://github.com/treyhunner/django-simple-history.git@0fd9b8e9c6f36b0141367b502420efe92d4e21ce' ) - - echo "-------------------------------------------------------------------------------"; - echo "Installing Ishtar sources" - echo ""; - - mkdir -p $full_install_path - cd $full_install_path - ( set -x; git clone git://git.proxience.com/git/oook_replace.git 2> /dev/null ) - ( set -x; git clone https://gitlab.com/iggdrasil/ishtar.git 2> /dev/null ) - cd ishtar - git fetch 2> /dev/null - git checkout $version 2> /dev/null - - mkdir -p $etc_path - echo "PATH="$full_install_path > $etc_path"config" - echo "DEFAULT_DB="$default_db >> $etc_path"config" - echo "WEBSERVER="$webserver >> $etc_path"config" - echo "" - echo "*******************************************************************************"; - echo ""; - echo "Installation done. Base configuration stored in "$etc_path"config file." - echo "Next you'll have to create an instance." - echo ""; - -} - -do_install - |