summaryrefslogtreecommitdiff
path: root/docker/leap_bootstrap.sh
diff options
context:
space:
mode:
Diffstat (limited to 'docker/leap_bootstrap.sh')
-rwxr-xr-xdocker/leap_bootstrap.sh324
1 files changed, 0 insertions, 324 deletions
diff --git a/docker/leap_bootstrap.sh b/docker/leap_bootstrap.sh
deleted file mode 100755
index a717ab6d..00000000
--- a/docker/leap_bootstrap.sh
+++ /dev/null
@@ -1,324 +0,0 @@
-#!/bin/bash
-######################################################################
-# repo-versions.sh
-# Copyright (C) 2014, 2015 LEAP
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-######################################################################
-set -e # Exit immediately if a command exits with a non-zero status.
-REPOSITORIES="bitmask_client leap_pycommon soledad keymanager leap_mail bitmask_launcher leap_assets"
-PACKAGES="leap_pycommon keymanager soledad/common soledad/client leap_mail bitmask_client"
-
-_is_docker() {
- grep -q docker /proc/1/cgroup
-}
-
-SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-
-_is_docker && BASE_PATH="/data/" || BASE_PATH=$SCRIPT_DIR
-REPOS_ROOT="$BASE_PATH/repositories" # Root path for all the needed repositories
-VENV_DIR="$BASE_PATH/bitmask.venv" # Root path for all the needed repositories
-
-mkdir -p $REPOS_ROOT
-
-PS4=">> " # for debugging
-
-# Escape code
-esc=`echo -en "\033"`
-
-# Set colors
-cc_green="${esc}[0;32m"
-cc_yellow="${esc}[0;33m"
-cc_blue="${esc}[0;34m"
-cc_red="${esc}[0;31m"
-cc_normal=`echo -en "${esc}[m\017"`
-
-apt_install_dependencies() {
- status="installing system dependencies"
- echo "${cc_green}Status: $status...${cc_normal}"
- set -x
- sudo apt-get install -y git python-dev python-setuptools python-virtualenv python-pip libssl-dev python-openssl libsqlite3-dev g++ openvpn pyside-tools python-pyside libffi-dev libzmq-dev
- set +x
-}
-
-helpers() {
- if [[ "$1" == "cleanup" ]]; then
- status="removing helper files"
- echo "${cc_green}Status: $status...${cc_normal}"
- set -x
- sudo rm -f /usr/sbin/bitmask-root
- sudo rm -f /usr/share/polkit-1/actions/se.leap.bitmask.policy
- set +x
- else
- status="installing helper files"
- echo "${cc_green}Status: $status...${cc_normal}"
- set -x
- BASE=$REPOS_ROOT/bitmask_client/pkg/linux
- sudo mkdir -p /usr/share/polkit-1/actions/
- sudo cp $BASE/bitmask-root /usr/sbin/
- sudo cp $BASE/polkit/se.leap.bitmask.policy /usr/share/polkit-1/actions/
- set +x
- fi
-}
-
-clone_repos() {
- local status="clone repositories"
- echo "${cc_green}Status: $status...${cc_normal}"
- set -x # show commands
-
- if [[ "$1" == "rw" ]]; then
- # read-write remotes:
- src="ssh://gitolite@leap.se"
- else
- # read-only remotes:
- src="https://leap.se/git"
- fi
- cd $REPOS_ROOT
-
- for repo in $REPOSITORIES; do
- [ ! -d $repo ] && git clone $src/$repo
- done
-
- cd -
-
- set +x
- echo "${cc_green}Status: $status done!${cc_normal}"
-}
-
-checkout_repos(){
- local status="checkout repositories"
- echo "${cc_green}Status: $status...${cc_normal}"
- set -x # show commands
-
- for repo in $REPOSITORIES; do
- version=$(cat $1 | python -c "import json,sys;obj=json.load(sys.stdin);print obj['$repo'];")
- cd $REPOS_ROOT/$repo
- git fetch origin && git fetch --tags origin
-
- if [[ -n `git tag -l | grep $version` ]]; then
- # if is a tag
- git checkout -f $version
- else
- # if is a branch
- git reset --hard origin/$version
- fi
- done
-
- set +x
- echo "${cc_green}Status: $status done!${cc_normal}"
-}
-
-create_venv() {
- local status="creating virtualenv"
- echo "${cc_green}Status: $status...${cc_normal}"
- set -x # show commands
-
- virtualenv $VENV_DIR && source $VENV_DIR/bin/activate
- pip install --upgrade pip # get the latest pip
-
- set +x
- echo "${cc_green}Status: $status done.${cc_normal}"
-}
-
-setup_develop() {
- local status="installing packages"
- echo "${cc_green}Status: $status...${cc_normal}"
- set -x # show commands
- cd $REPOS_ROOT
- source $VENV_DIR/bin/activate
-
- # do a setup develop in every package
- for package in $PACKAGES; do
- cd $REPOS_ROOT/$package
- python setup.py develop --always-unzip
- done
-
- set +x
- echo "${cc_green}Status: $status done.${cc_normal}"
-}
-
-install_dependencies() {
- local status="installing dependencies"
- echo "${cc_green}Status: $status...${cc_normal}"
- set -x # show commands
- cd $REPOS_ROOT
- source $VENV_DIR/bin/activate
-
- # install defined 3rd party dependencies for every package
- for package in $PACKAGES; do
- cd $REPOS_ROOT/$package
- pkg/pip_install_requirements.sh --use-leap-wheels
- done
-
- # symlink system's PySide inside the venv
- $REPOS_ROOT/bitmask_client/pkg/postmkvenv.sh
-
- # hack to solve gnupg version problem
- pip uninstall -y gnupg && pip install gnupg
-
- set +x
- echo "${cc_green}Status: $status done.${cc_normal}"
-}
-
-docker_stuff() {
- local status="doing stuff needed to run bitmask on a docker container"
- echo "${cc_green}Status: $status...${cc_normal}"
- set -x # show commands
-
- helpers
- lxpolkit &
- sleep 0.5
-
- # this is needed for pkexec
- mkdir -p /var/run/dbus
- dbus-daemon --system | true
-
- set +x
- echo "${cc_green}Status: $status done.${cc_normal}"
-}
-
-run() {
- echo "${cc_green}Status: running client...${cc_normal}"
- set -x
-
- shift # remove 'run' from arg list
- passthrough_args=$@
-
- _is_docker && docker_stuff
-
- source $VENV_DIR/bin/activate
- python $REPOS_ROOT/bitmask_client/src/leap/bitmask/app.py -d $passthrough_args
-
- set +x
-}
-
-initialize() {
- shift # remove 'init'
- echo $@
- if [[ "$1" == "ro" ]]; then
- # echo "RO"
- shift # remove 'ro'
- clone_repos "ro"
- else
- # echo "RW"
- clone_repos
- fi
-
- if [[ -z $1 ]]; then
- echo "You need to specify a bitmask.json parameter."
- echo "for example:"
- cat << EOF
-{
- "bitmask_client": "0.7.0",
- "soledad": "0.6.3",
- "leap_pycommon": "0.3.9",
- "keymanager": "0.3.8",
- "leap_mail": "0.3.10",
- "bitmask_launcher": "0.3.3",
- "leap_assets": "master"
-}
-EOF
- exit 1
- fi
-
- JSON=`realpath $1`
-
- checkout_repos $JSON
- create_venv
- install_dependencies
- setup_develop
-
- cd $REPOS_ROOT/bitmask_client/
- make
- cd -
-}
-update() {
- local status="updating repositories"
- echo "${cc_green}Status: $status...${cc_normal}"
- set -x # show commands
-
- if [[ -z $1 ]]; then
- echo "You need to specify a bitmask.json parameter."
- echo "for example:"
- cat << EOF
-{
- "bitmask_client": "0.7.0",
- "soledad": "0.6.3",
- "leap_pycommon": "0.3.9",
- "keymanager": "0.3.8",
- "leap_mail": "0.3.10",
- "bitmask_launcher": "0.3.3",
- "leap_assets": "master"
-}
-EOF
- exit 1
- fi
-
- JSON=`realpath $1`
-
- checkout_repos $JSON
- install_dependencies
- setup_develop
-
- cd $REPOS_ROOT/bitmask_client/
- make
- cd -
-
- set +x
- echo "${cc_green}Status: $status done!${cc_normal}"
-}
-
-
-help() {
- echo ">> LEAP bootstrap - help"
- echo "Bootstraps the environment to start developing the bitmask client"
- echo "with all the needed repositories and dependencies."
- echo
- echo "Usage: $0 {init [ro] bitmask.json | update bitmask.json | run | help | deps | helpers}"
- echo
- echo " init : Initialize repositories, create virtualenv and \`python setup.py develop\` all."
- echo " You can use \`init ro\` in order to use the https remotes if you don't have rw access."
- echo " The bitmask.json file contains the version that will be used for each repo."
- echo " update : Update the repositories and install new deps (if needed)."
- echo " The bitmask.json file contains the version that will be used for each repo."
- echo " run : Runs the client (any extra parameters will be sent to the app)."
- echo " help : Show this help"
- echo " -- system helpers --"
- echo " deps : Install the system dependencies needed for bitmask dev (Debian based Linux ONLY)."
- echo " helpers : Install the helper files needed to use bitmask (Linux only)."
- echo " You can use \`helpers cleanup\` to remove those files."
- echo
-}
-
-
-case "$1" in
- init)
- initialize "$@"
- ;;
- update)
- update $2
- ;;
- helpers)
- helpers $2
- ;;
- deps)
- apt_install_dependencies
- ;;
- run)
- run "$@"
- ;;
- *)
- help
- ;;
-esac