New user korth is also created when setting up db. Jasmine handled, for now by disabling rake task. Various fixes
199 lines
6.1 KiB
Bash
Executable file
199 lines
6.1 KiB
Bash
Executable file
#!/bin/bash
|
|
# Author : hemanth.hm@gmail.com
|
|
# Site : www.h3manth.com
|
|
# Contributions from: Mackenzie Morgan (maco) and Daniel Thomas (drt24)
|
|
# This script helps to setup diaspora.
|
|
#
|
|
# Copyright (c) 2010, Diaspora Inc. This file is
|
|
# licensed under the Affero General Public License version 3 or later. See
|
|
# the COPYRIGHT file.
|
|
|
|
|
|
# USAGE: ./pkg/ubuntu-setup.bash [external hostname]
|
|
# Do NOT run this script as root.
|
|
|
|
arg_hostname="$1"
|
|
|
|
# Set extented globbing
|
|
shopt -s extglob
|
|
|
|
# fail on error
|
|
set -e
|
|
|
|
[[ "$(whoami)" == "root" ]] && echo "Please do not run this script as root/sudo
|
|
We need to do some actions as an ordinary user. We use sudo where necessary." && exit 1
|
|
|
|
# Check if the user has sudo privileges.
|
|
sudo -v >/dev/null 2>&1 || { echo $(whoami) has no sudo privileges ; exit 1; }
|
|
|
|
# Check if universal repository is enabled
|
|
grep -ie '^deb .*universe' /etc/apt/sources.list > /dev/null || \
|
|
{ echo "Please enable universe repository" ; exit 1 ; }
|
|
|
|
|
|
# Make sure that we only install the latest version of packages
|
|
sudo apt-get update
|
|
|
|
# Check if wget is installed
|
|
test wget || { echo "Installing wget.." && sudo apt-get install wget \
|
|
&& echo "Installed wget.." ; }
|
|
|
|
# Install build tools
|
|
echo "Installing build tools.."
|
|
sudo apt-get -y --no-install-recommends install \
|
|
build-essential libxslt1.1 libxslt1-dev libxml2
|
|
echo "..Done installing build tools"
|
|
|
|
# Install Ruby 1.8.7
|
|
echo "Installing ruby-full Ruby 1.8.7.."
|
|
sudo apt-get -y --no-install-recommends install ruby-full
|
|
echo "..Done installing Ruby"
|
|
|
|
# Install Rake
|
|
echo "Installing rake.."
|
|
sudo apt-get -y --no-install-recommends install rake
|
|
echo "..Done installing rake"
|
|
|
|
#Store the release name so we can use it here and later
|
|
RELEASE=$(lsb_release -c | cut -f2)
|
|
|
|
# Get the current release and install mongodb
|
|
if [ $RELEASE == "maverick" ]
|
|
then
|
|
#mongodb does not supply a repository for maverick yet so install
|
|
# an older version from the ubuntu repositories
|
|
if [ ! -f /usr/lib/libmozjs.so ]
|
|
then
|
|
echo "Lanchpad bug https://bugs.launchpad.net/ubuntu/+source/mongodb/+bug/557024
|
|
has not been fixed using workaround:"
|
|
echo "sudo ln -sf /usr/lib/xulrunner-1.9.2.10/libmozjs.so /usr/lib/libmozjs.so"
|
|
sudo ln -sf /usr/lib/xulrunner-1.9.2.10/libmozjs.so /usr/lib/libmozjs.so
|
|
fi
|
|
|
|
sudo apt-get -y --no-install-recommends install mongodb
|
|
else
|
|
lsb=$(lsb_release -rs)
|
|
ver=${lsb//.+(0)/.}
|
|
repo="deb http://downloads.mongodb.org/distros/ubuntu ${ver} 10gen"
|
|
echo "Setting up MongoDB.."
|
|
echo "."
|
|
echo ${repo} | sudo tee -a /etc/apt/sources.list
|
|
echo "."
|
|
echo "Fetching keys.."
|
|
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
|
|
echo "."
|
|
sudo apt-get update
|
|
echo "."
|
|
sudo apt-get -y --no-install-recommends install mongodb-stable
|
|
echo "Done installing monngodb-stable.."
|
|
fi
|
|
|
|
# Install imagemagick
|
|
echo "Installing imagemagick.."
|
|
sudo apt-get -y --no-install-recommends install imagemagick libmagick9-dev
|
|
echo "Installed imagemagick.."
|
|
|
|
# Install git-core
|
|
echo "Installing git-core.."
|
|
sudo apt-get -y --no-install-recommends install git-core
|
|
echo "Installed git-core.."
|
|
|
|
# Setting up ruby gems
|
|
echo "Fetching and installing ruby gems.."
|
|
(
|
|
if [ $RELEASE == "maverick" ]
|
|
then
|
|
sudo apt-get install --no-install-recommends -y rubygems
|
|
sudo ln -sf /var/lib/gems/1.8/bin/bundle /usr/local/bin/bundle #for PATH
|
|
elif [ $RELEASE == "lucid" ]
|
|
then
|
|
sudo add-apt-repository ppa:maco.m/ruby
|
|
sudo apt-get update
|
|
sudo apt-get install --no-install-recommends -y rubygems
|
|
sudo ln -sf /var/lib/gems/1.8/bin/bundle /usr/local/bin/bundle #for PATH
|
|
else
|
|
# Old version
|
|
echo "."
|
|
cd /tmp
|
|
wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz
|
|
echo "."
|
|
tar -xf rubygems-1.3.7.tgz
|
|
echo "."
|
|
cd rubygems-1.3.7
|
|
echo "."
|
|
sudo ruby setup.rb
|
|
echo "."
|
|
sudo ln -sf /usr/bin/gem1.8 /usr/bin/gem
|
|
echo "."
|
|
fi
|
|
)
|
|
echo "Done installing the gems.."
|
|
|
|
# Install bundler
|
|
echo "Installing bundler.."
|
|
sudo gem install bundler
|
|
echo "Installed bundler.."
|
|
|
|
# Take a clone of Diaspora
|
|
(
|
|
# Check if the user is already in a cloned source if not clone the source
|
|
[[ $( basename $PWD ) == "diaspora" ]] && \
|
|
echo "Already in diaspora directory" || \
|
|
{ git clone http://github.com/diaspora/diaspora.git && cd diaspora
|
|
echo "Cloned the source.."
|
|
}
|
|
|
|
# Install extra gems
|
|
echo "Installing more gems.."
|
|
bundle install
|
|
bundle exec jasmine init
|
|
echo "Installed."
|
|
|
|
#Configure diaspora
|
|
cp config/app_config.yml.example config/app_config.yml
|
|
hostname=$( awk '/pod_url:/ { print $2; exit }' <config/app_config.yml)
|
|
|
|
if [ -n "$arg_hostname" ]; then
|
|
sed -i "/pod_url:/s|$hostname|$arg_hostname|g" config/app_config.yml &&
|
|
echo "config/app_config.yml updated."
|
|
exit 0
|
|
else
|
|
while : ; do
|
|
echo "Current hostname is \"$hostname\""
|
|
echo -n "Enter new hostname [$hostname] :"
|
|
read new_hostname garbage
|
|
echo -n "Use \"$new_hostname\" as pod_url (Yes/No) [Yes]? :"
|
|
read yesno garbage
|
|
[ "${yesno:0:1}" = 'y' -o "${yesno:0:1}" = 'Y' -o -z "$yesno" ] && {
|
|
sed -i "/pod_url:/s|$hostname|$new_hostname|g" \
|
|
config/app_config.yml &&
|
|
echo "config/app_config.yml updated."
|
|
break
|
|
}
|
|
done
|
|
fi
|
|
|
|
|
|
# Create the shared directory which is used by rake db:seed:tom
|
|
### mkdir shared
|
|
|
|
# Install DB setup
|
|
echo "Setting up DB..."
|
|
if rake db:seed:dev ; then
|
|
cat <<- EOF
|
|
DB ready. Logins -> tom or korth, password -> evankorth.
|
|
More details ./diaspora/db/seeds/tom.rb. and ./diaspora/db/seeds/dev.rb.
|
|
EOF
|
|
else
|
|
cat <<- EOF
|
|
Database config failed. You might want to remove all db files with
|
|
'rm -rf /var/lib/mongodb/*' and/or reset the config file by
|
|
'cp config/app_config.yml.example config/app_config.yml' before
|
|
making a new try. Also, make sure the mongodb server is running
|
|
EOF
|
|
fi
|
|
|
|
# Run appserver
|
|
echo "Starting server"
|
|
script/server
|
|
)
|