From 68892379d387abbd8e7ebf81a7e317a8034b34eb Mon Sep 17 00:00:00 2001 From: Tayane Fernandes Date: Thu, 1 Jun 2017 15:58:42 -0300 Subject: Revert "Use "make install" to install useragent from source" This reverts commit e439f48f40f60f5f317e0ac4b54178b0b677c339. --- provisioning/modules/pixelated/files/.bashrc | 124 --------------------- .../manifests/source/install_useragent.pp | 28 ++++- 2 files changed, 22 insertions(+), 130 deletions(-) delete mode 100644 provisioning/modules/pixelated/files/.bashrc diff --git a/provisioning/modules/pixelated/files/.bashrc b/provisioning/modules/pixelated/files/.bashrc deleted file mode 100644 index 25a940ba..00000000 --- a/provisioning/modules/pixelated/files/.bashrc +++ /dev/null @@ -1,124 +0,0 @@ -# ~/.bashrc: executed by bash(1) for non-login shells. -# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) -# for examples - -# If not running interactively, don't do anything -case $- in - *i*) ;; - *) return;; -esac - -# don't put duplicate lines or lines starting with space in the history. -# See bash(1) for more options -HISTCONTROL=ignoreboth - -# append to the history file, don't overwrite it -shopt -s histappend - -# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) -HISTSIZE=1000 -HISTFILESIZE=2000 - -# check the window size after each command and, if necessary, -# update the values of LINES and COLUMNS. -shopt -s checkwinsize - -# If set, the pattern "**" used in a pathname expansion context will -# match all files and zero or more directories and subdirectories. -#shopt -s globstar - -# make less more friendly for non-text input files, see lesspipe(1) -[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" - -# set variable identifying the chroot you work in (used in the prompt below) -if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then - debian_chroot=$(cat /etc/debian_chroot) -fi - -# set a fancy prompt (non-color, unless we know we "want" color) -case "$TERM" in - xterm-color|*-256color) color_prompt=yes;; -esac - -# uncomment for a colored prompt, if the terminal has the capability; turned -# off by default to not distract the user: the focus in a terminal window -# should be on the output of commands, not on the prompt -#force_color_prompt=yes - -if [ -n "$force_color_prompt" ]; then - if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then - # We have color support; assume it's compliant with Ecma-48 - # (ISO/IEC-6429). (Lack of such support is extremely rare, and such - # a case would tend to support setf rather than setaf.) - color_prompt=yes - else - color_prompt= - fi -fi - -if [ "$color_prompt" = yes ]; then - PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' -else - PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' -fi -unset color_prompt force_color_prompt - -# If this is an xterm set the title to user@host:dir -case "$TERM" in -xterm*|rxvt*) - PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" - ;; -*) - ;; -esac - -# enable color support of ls and also add handy aliases -if [ -x /usr/bin/dircolors ]; then - test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" - alias ls='ls --color=auto' - #alias dir='dir --color=auto' - #alias vdir='vdir --color=auto' - - alias grep='grep --color=auto' - alias fgrep='fgrep --color=auto' - alias egrep='egrep --color=auto' -fi - -# colored GCC warnings and errors -#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' - -# some more ls aliases -alias ll='ls -alF' -alias la='ls -A' -alias l='ls -CF' - -# Add an "alert" alias for long running commands. Use like so: -# sleep 10; alert -alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' - -# Alias definitions. -# You may want to put all your additions into a separate file like -# ~/.bash_aliases, instead of adding them here directly. -# See /usr/share/doc/bash-doc/examples in the bash-doc package. - -if [ -f ~/.bash_aliases ]; then - . ~/.bash_aliases -fi - -# enable programmable completion features (you don't need to enable -# this, if it's already enabled in /etc/bash.bashrc and /etc/profile -# sources /etc/bash.bashrc). -if ! shopt -oq posix; then - if [ -f /usr/share/bash-completion/bash_completion ]; then - . /usr/share/bash-completion/bash_completion - elif [ -f /etc/bash_completion ]; then - . /etc/bash_completion - fi -fi - - -# Pixelated - -cd /vagrant || exit -# shellcheck disable=SC1091 -source /home/vagrant/.venvs/pixua/bin/activate diff --git a/provisioning/modules/pixelated/manifests/source/install_useragent.pp b/provisioning/modules/pixelated/manifests/source/install_useragent.pp index d79d4144..8afbac0c 100644 --- a/provisioning/modules/pixelated/manifests/source/install_useragent.pp +++ b/provisioning/modules/pixelated/manifests/source/install_useragent.pp @@ -1,4 +1,4 @@ -# install useragent in a virtualenv +# install useragent in a virtualenv, deploy helper script # and make sure venv is activated on login class pixelated::source::install_useragent { @@ -9,18 +9,34 @@ class pixelated::source::install_useragent { # see https://projects.puppetlabs.com/issues/23053 # therefore we need to explicitily set them here environment => [ 'USERNAME=vagrant', 'HOME=/home/vagrant' ], - command => '/usr/bin/make install', + command => "/vagrant/install-pixelated.sh -v \"${virtualenv_path}\" -n /home/vagrant/boxed_node_modules", cwd => '/vagrant', user => 'vagrant', # to debug use this - logoutput => true, + # logoutput => true, timeout => 0 } - file { '/home/vagrant/.bashrc': + file { '/home/vagrant/activate_custom_node_modules.sh': owner => 'vagrant', - mode => '0644', - source => 'puppet:///modules/pixelated/.bashrc', + mode => '0755', + source => 'puppet:///modules/pixelated/activate_custom_node_modules.sh', } + exec { 'add_custom_node_modules_to_bashrc': + command => "/bin/bash -c 'echo \"source ${virtualenv_path}/bin/activate\" >> /home/vagrant/.bashrc'", + unless => "/bin/grep \"source ${virtualenv_path}/bin/activate\" /home/vagrant/.bashrc", + user => 'vagrant', + require => [Exec['install-pixelated'], File['/home/vagrant/activate_custom_node_modules.sh']] + } + exec { 'add_custom_node_path_to_bashrc': + command => "/bin/bash -c 'echo NODE_PATH=/home/vagrant/boxed_node_modules/node_modules/ >> /home/vagrant/.bashrc'", + unless => '/bin/grep NODE_PATH /home/vagrant/.bashrc', + user => 'vagrant', + } + exec { 'add_rule_to_change_to_vagrant_folder_on_login': + command => "/bin/echo 'cd /vagrant' >> /home/vagrant/.bashrc", + unless => "/bin/grep 'cd /vagrant' /home/vagrant/.bashrc", + user => 'vagrant', + } } -- cgit v1.2.3 From 70935240c52c72ca06e379d5de94645881f2c180 Mon Sep 17 00:00:00 2001 From: Tayane Fernandes Date: Thu, 1 Jun 2017 15:58:52 -0300 Subject: Revert "Remove leftover files/activate_custom_node_modules.sh" This reverts commit 3b4f57477b58e6e49036d597acabb00cd78f7d32. --- .../files/activate_custom_node_modules.sh | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100755 provisioning/modules/pixelated/files/activate_custom_node_modules.sh diff --git a/provisioning/modules/pixelated/files/activate_custom_node_modules.sh b/provisioning/modules/pixelated/files/activate_custom_node_modules.sh new file mode 100755 index 00000000..d63b8d35 --- /dev/null +++ b/provisioning/modules/pixelated/files/activate_custom_node_modules.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# +# Copyright (c) 2014 ThoughtWorks, Inc. +# +# Pixelated is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Pixelated 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with Pixelated. If not, see . + +CUSTOM_NODE_MODULES_LOCATION="$HOME/boxed_node_modules" +VAGRANT_NODE_MODULES="/vagrant/web-ui/node_modules" +export PATH="$PATH:$CUSTOM_NODE_MODULES_LOCATION/node_modules/.bin" + +export NODE_PATH="$CUSTOM_NODE_MODULES_LOCATION/node_modules" + +if [ ! -e $VAGRANT_NODE_MODULES ] ; then + ln -s $CUSTOM_NODE_MODULES_LOCATION $VAGRANT_NODE_MODULES +fi + +source /home/vagrant/user-agent-venv/bin/activate + +pip install --upgrade pip +pip install --upgrade setuptools + +cd /vagrant/service +echo "running python setup" +./go setuppy > /dev/null +echo "running js setup" +./go setupjs > /dev/null -- cgit v1.2.3 From 8659b2e6f9b405e2d763fc1fa3d3afc47d8e44ea Mon Sep 17 00:00:00 2001 From: Tayane Fernandes Date: Thu, 1 Jun 2017 15:58:55 -0300 Subject: Revert "Remove old unused files" This reverts commit 6c52f7a01a0067a1638fd8d64fb7e3030f9b0506. --- install-pixelated.sh | 139 +++++++++++++++++++++++++++++++++++++++++++++++++++ service/go | 7 +++ try.alice.ini | 7 +++ try.bob.ini | 7 +++ 4 files changed, 160 insertions(+) create mode 100755 install-pixelated.sh create mode 100755 service/go create mode 100644 try.alice.ini create mode 100644 try.bob.ini diff --git a/install-pixelated.sh b/install-pixelated.sh new file mode 100755 index 00000000..7008063e --- /dev/null +++ b/install-pixelated.sh @@ -0,0 +1,139 @@ +#!/bin/bash +# +# Copyright (c) 2014 ThoughtWorks, Inc. +# +# Pixelated is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Pixelated 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with Pixelated. If not, see . + +# test dependencies + +set -e +export NODE_PATH='/home/vagrant/boxed_node_modules/node_modules/' + +if [ ! $USERNAME ] +then + export USERNAME=`whoami` +fi + +usage() { echo "Usage: $0 [-v ] [-n ]" 1>&2; exit 1; } + +VIRTUALENV_PATH=".virtualenv" +CUSTOM_NODE_MODULES_LOCATION="" +while getopts "n:v:" OPT; do + case "${OPT}" in + v) + VIRTUALENV_PATH=${OPTARG} + ;; + n) # custom node_modules installation + CUSTOM_NODE_MODULES_LOCATION=${OPTARG} + ;; + *) + usage + ;; + esac +done +shift $((OPTIND-1)) + +function check_installed() { + set +e + which $1 + if [ $? -ne 0 ]; then + echo "## You must have ${1} installed and in the PATH to run Pixelated-User-Agent" + echo "## Check our wiki for more information on dependencies:" + echo "## https://github.com/pixelated-project/pixelated-user-agent/wiki/Installing-dependencies" + echo "## exiting..." + exit 1 + fi + set -e +} + + +# The below is necessary to allow node to use enough memory +# so that installing phantomjs won't fail +mkdir -p /home/vagrant/bin +cat > /home/vagrant/bin/node <&2 + return + fi + + if [ ! -e "$LOCATION" ] ; then + mkdir "$LOCATION" + pushd "$LOCATION" + + ln -s "$WEBUI_DIR/package.json" package.json + npm install + + popd + fi + + if [ ! -h "node_modules" ] ; then + rm -Rf "node_modules" + ln -s "$LOCATION/node_modules" node_modules + fi +} + +for dependency in node npm ruby virtualenv git gpg compass; do + check_installed $dependency +done + +# install web-ui dependencies +cd web-ui +UIPATH=`pwd` + +if [ -z "$CUSTOM_NODE_MODULES_LOCATION" ] ; then + npm install +else + install_node_modules_at_custom_location "$CUSTOM_NODE_MODULES_LOCATION" +fi + +node_modules/bower/bin/bower -V install --config.interactive=false --allow-root +LC_ALL=en_US.UTF-8 ./go build + +# install service dependencies +cd .. +rm -rf "$VIRTUALENV_PATH" +virtualenv "$VIRTUALENV_PATH" +source "$VIRTUALENV_PATH/bin/activate" +# they can't be on the same command because it breaks pip upgrade +pip install --upgrade pip +pip install --upgrade setuptools +make setup +pip uninstall -y enum34 && pip install enum34 +pip uninstall -y pysqlcipher && pip install pysqlcipher # this is needed so pysqlcipher gets recompiled with the right version of glibc + +# print usage +cat <