diff --git a/pkg/ubuntu-setup.bash b/pkg/ubuntu-setup.bash index cbf42c60a99bd4c787d8770f1af04d53c68b7982..55ec1d2b722766cfde39dc41bbbb3e09f3c0aad0 100755 --- a/pkg/ubuntu-setup.bash +++ b/pkg/ubuntu-setup.bash @@ -8,22 +8,25 @@ # licensed under the Affero General Public License version 3 or later. See # the COPYRIGHT file. -# USAGE: ./script/ubuntu-setup.bash + +# 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 +[[ "$(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 +# Check if universal repository is enabled grep -ie '^deb .*universe' /etc/apt/sources.list > /dev/null || \ { echo "Please enable universe repository" ; exit 1 ; } @@ -63,8 +66,8 @@ then then echo "Lanchpad bug https://bugs.launchpad.net/ubuntu/+source/mongodb/+bug/557024 has not been fixed using workaround:" - echo "sudo ln -s /usr/lib/xulrunner-1.9.2.10/libmozjs.so /usr/lib/libmozjs.so" - sudo ln -s /usr/lib/xulrunner-1.9.2.10/libmozjs.so /usr/lib/libmozjs.so + 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 @@ -101,13 +104,13 @@ echo "Fetching and installing ruby gems.." if [ $RELEASE == "maverick" ] then sudo apt-get install --no-install-recommends -y rubygems - sudo ln -s /var/lib/gems/1.8/bin/bundle /usr/local/bin/bundle #for PATH + 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 -s /var/lib/gems/1.8/bin/bundle /usr/local/bin/bundle #for PATH + sudo ln -sf /var/lib/gems/1.8/bin/bundle /usr/local/bin/bundle #for PATH else # Old version echo "." @@ -147,26 +150,49 @@ echo "Installed bundler.." #Configure diaspora cp config/app_config.yml.example config/app_config.yml - echo "You need to configure diaspora to tell it which URL it has. -Opening editor in 5 seconds and then continuing with install." - sleep 5 - #ensure EDITOR is set - if [ -z "${EDITOR}"] - then - EDITOR=vi + 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 - $EDITOR config/app_config.yml + # Create the shared directory which is used by rake db:seed:tom - mkdir shared + ### mkdir shared # Install DB setup - echo "Seting up DB.." - rake db:seed:tom - echo "DB ready. Login -> tom and password -> evankorth. -More details ./diaspora/db/seeds/tom.rb." + echo "Setting up DB..." + if rake db:seed:dev ; then + cat <<- EOF + DB ready. Login -> tom and 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" - bundle exec thin start + script/server )