From 9b75f1a83ec6b738c99f44eafe3010c404f1d673 Mon Sep 17 00:00:00 2001 From: Eitan Adler Date: Sun, 21 Oct 2012 10:20:09 -0400 Subject: [PATCH 1/5] Remove non-portable bashisms from most of the scripts. Only install.sh has any bashisms left. However, the bug which prevented it from running on most systems (using /bin/bash directly) has been fixed. --- script/ci/before_install.sh | 6 +-- script/ci/build.sh | 2 +- script/install.sh | 102 +++++++++++++++++------------------- script/server | 12 +++-- 4 files changed, 59 insertions(+), 63 deletions(-) diff --git a/script/ci/before_install.sh b/script/ci/before_install.sh index 8d49a3ced..c5236b071 100755 --- a/script/ci/before_install.sh +++ b/script/ci/before_install.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/bin/sh # Ensure known RubyGems version envdir="$(readlink -e $(dirname $0))/../env" -source "$envdir/ruby_env" -source "$envdir/ensure_right_rubygems" +. "$envdir/ruby_env" +. "$envdir/ensure_right_rubygems" diff --git a/script/ci/build.sh b/script/ci/build.sh index 263199deb..32b015df4 100755 --- a/script/ci/build.sh +++ b/script/ci/build.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh # Create a database.yml for the right database diff --git a/script/install.sh b/script/install.sh index 95192b0eb..738efa82d 100755 --- a/script/install.sh +++ b/script/install.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash ### # MAKE ME BETTER @@ -84,12 +84,6 @@ JS_RUNTIME_DETECTED=false # EOF define(){ IFS='\n' read -r -d '' ${1}; } -# expand aliases in this script -shopt -s expand_aliases - -# alias echo to alway print \newlines -alias echo='echo -e' - # run a command or print the error run_or_error() { eval "$1" @@ -100,11 +94,11 @@ run_or_error() { # nicely output error messages and quit error() { - echo "\n" - echo "[ERROR] -- $1" - echo " --" - echo " -- have a look at our wiki: $D_WIKI_URL" - echo " -- or join us on IRC: $D_IRC_URL" + printf "\n" + printf "[ERROR] -- $1" + printf " --" + printf " -- have a look at our wiki: $D_WIKI_URL" + printf " -- or join us on IRC: $D_IRC_URL" exit 1 } @@ -118,7 +112,7 @@ interactive_check() { fd=0 #stdin if [[ -t "$fd" || -p /dev/stdin ]]; then # all is well - echo "" + printf "" else # non-interactive TMPFILE=`mktemp` @@ -134,13 +128,13 @@ interactive_check() { # check if all necessary binaries are available binaries_check() { for exe in "${!BINARIES[@]}"; do - echo -n "checking for $exe... " + printf -n "checking for $exe... " which "${BINARIES[$exe]}" if [ $? -ne 0 ]; then error "you are missing the '${BINARIES[$exe]}' command, please install '$exe'"; fi done - echo "" + printf "" } # check for rvm @@ -152,28 +146,28 @@ to install, manage and work with multiple ruby environments. For more details check out https://rvm.io// EOT rvm_check() { - echo -n "checking for rvm... " + printf -n "checking for rvm... " fn_exists rvm if [ $? -eq 0 ] ; then RVM_DETECTED=true # seems we don't have it loaded, try to do so - elif [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then + elif [ -s "$HOME/.rvm/scripts/rvm" ] ; then source "$HOME/.rvm/scripts/rvm" >/dev/null 2>&1 RVM_DETECTED=true - elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then + elif [ -s "/usr/local/rvm/scripts/rvm" ] ; then source "/usr/local/rvm/scripts/rvm" >/dev/null 2>&1 RVM_DETECTED=true fi if $RVM_DETECTED ; then - echo "found" + printf "found" else - echo "not found" - echo "$RVM_MSG" + printf "not found" + printf "$RVM_MSG" read -p "Press [Enter] to continue without RVM or abort this script and install RVM..." fi - echo "" + printf "" } # prepare ruby with rvm @@ -183,16 +177,16 @@ install_or_use_ruby() { fi # make sure we have the correct ruby version available - echo -n "checking your ruby version... " + printf -n "checking your ruby version... " rvm use $D_RUBY_VERSION >/dev/null 2>&1 if [ $? -ne 0 ] ; then - echo "not ok" + printf "not ok" rvm --force install $D_RUBY_VERSION else - echo "ok" + printf "ok" fi - echo "" + printf "" } # trust and load rvmrc @@ -209,15 +203,15 @@ load_rvmrc() { fi # load .rvmrc - echo -n "loading .rvmrc ... " - source ".rvmrc" + printf -n "loading .rvmrc ... " + . ".rvmrc" #rvm rvmrc load if [ $? -eq 0 ] ; then - echo "ok" + printf "ok" else - echo "not ok" + printf "not ok" fi - echo "" + printf "" } # rvm doesn't need sudo, otherwise we do have to use it :( @@ -227,7 +221,7 @@ rvm_or_sudo() { else eval "$1" if [ $? -ne 0 ] ; then - echo "\nrunning '$1' didn't succeed, trying again with sudo...\n" + printf "\nrunning '$1' didn't succeed, trying again with sudo...\n" run_or_error "sudo $1" fi fi @@ -246,7 +240,7 @@ For more information on ExecJS, visit -- https://github.com/sstephenson/execjs EOT js_runtime_check() { - echo -n "checking for a JavaScript runtime... " + printf -n "checking for a JavaScript runtime... " # Node.js which node >/dev/null 2>&1 @@ -255,7 +249,7 @@ js_runtime_check() { fi # TheRubyRacer - (echo "require 'v8'" | ruby) >/dev/null 2>&1 + (printf "require 'v8'" | ruby) >/dev/null 2>&1 if [ $? -eq 0 ] ; then JS_RUNTIME_DETECTED=true fi @@ -265,13 +259,13 @@ js_runtime_check() { ## if $JS_RUNTIME_DETECTED ; then - echo "ok" + printf "ok" else - echo "not ok" - echo "$JS_RT_MSG" + printf "not ok" + printf "$JS_RT_MSG" error "can't continue without a JS runtime" fi - echo "" + printf "" } # make ourselves comfy @@ -291,17 +285,17 @@ sane_environment_check() { # find or set up a working git environment git_stuff_check() { - echo "Where would you like to put the git clone, or, where is your existing git clone?" - echo "(please use a full path, not '~' or '.')" + printf "Where would you like to put the git clone, or, where is your existing git clone?" + printf "(please use a full path, not '~' or '.')" read -e -p "-> " D_GIT_CLONE_PATH - echo "" + printf "" test -d "$D_GIT_CLONE_PATH" \ && cd "$D_GIT_CLONE_PATH" \ && git status # folder exists? go there. is a good git clone? if [ $? -ne 0 ]; then # not a git repo, create it? - echo "the folder you specified does not exist or doesn't contain a git repo" + printf "the folder you specified does not exist or doesn't contain a git repo" read -p "Press [Enter] to create it... " run_or_error "mkdir -p -v \"$D_GIT_CLONE_PATH\"" # only if it doesn't exist run_or_error "git clone \"$D_REMOTE_REPO_URL\" \"$D_GIT_CLONE_PATH\"" @@ -309,12 +303,12 @@ git_stuff_check() { run_or_error "git checkout master" run_or_error "git pull" fi - echo "" + printf "" } # handle database decision database_question() { - echo "Which database type are you using?" + printf "Which database type are you using?" select choice in "MySQL" "PgSQL"; do case $choice in MySQL ) @@ -347,19 +341,19 @@ database_credentials() { # setup database # (assume we are in the Diaspora directory) database_setup() { - echo "Database setup" + printf "Database setup" run_or_error "cp config/database.yml.example \"$D_DB_CONFIG_FILE\"" database_question database_credentials - echo "" + printf "" } # install all the gems with bundler # (assume we are in the Diaspora directory) prepare_gem_bundle() { - echo "installing all required gems..." + printf "installing all required gems..." rvm_or_sudo "bundle install" - echo "" + printf "" } @@ -390,7 +384,7 @@ Follow the guide in our wiki, instead: ##################################################################### EOT -echo "$WELCOME_MSG" +printf "$WELCOME_MSG" read -p "Press [Enter] to continue... " @@ -411,18 +405,18 @@ prepare_install_env database_setup -echo "copying diaspora.yml.example to diaspora.yml" +printf "copying diaspora.yml.example to diaspora.yml" run_or_error "cp config/diaspora.yml.example config/diaspora.yml" -echo "" +printf "" # bundle gems prepare_gem_bundle -echo "creating the default database specified in config/database.yml. please wait..." +printf "creating the default database specified in config/database.yml. please wait..." run_or_error "bundle exec rake db:schema:load_if_ruby --trace" -echo "" +printf "" define GOODBYE_MSG <&2 echo "Now and after each update before you restart the application, run:" >&2 From 2e95183bbac8a2400a2c60132552382ce8d64508 Mon Sep 17 00:00:00 2001 From: Eitan Adler Date: Sun, 21 Oct 2012 10:26:23 -0400 Subject: [PATCH 2/5] Fix buggy assumption that bash exists in /bin. While here avoid bashisms in the first place. --- .rvmrc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.rvmrc b/.rvmrc index 59800542f..0aad59214 100644 --- a/.rvmrc +++ b/.rvmrc @@ -1,19 +1,19 @@ -#!/bin/bash +#!/bin/sh -source ./script/env/ruby_env +. ./script/env/ruby_env if [ -e '.rvmrc.local' ]; then - source .rvmrc.local; + . .rvmrc.local; elif [ -e '.rvmrc_custom' ] ; then - source .rvmrc_custom; + . .rvmrc_custom; else if rvm list strings | grep -q "$ruby_version" ; then rvm --create use "$ruby_version@$gemset" else - echo -e "\e[00;31mPLEASE INSTALL RUBY $ruby_version WITH \`rvm install $ruby_version\`" - echo -e "Don't forget to run \`cd .. && cd -\` afterwards!\e[00m" + printf "\e[00;31mPLEASE INSTALL RUBY $ruby_version WITH \`rvm install $ruby_version\`" + printf "Don't forget to run \`cd .. && cd -\` afterwards!\e[00m" return 1 fi fi -source ./script/env/ensure_right_rubygems +. ./script/env/ensure_right_rubygems From 18e755c8a963d0a5dac9721388e76e235504c075 Mon Sep 17 00:00:00 2001 From: Florian Staudacher Date: Wed, 24 Oct 2012 19:39:56 +0200 Subject: [PATCH 3/5] installer output system rework --- script/install.sh | 130 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 90 insertions(+), 40 deletions(-) diff --git a/script/install.sh b/script/install.sh index 738efa82d..c32fd22e5 100755 --- a/script/install.sh +++ b/script/install.sh @@ -84,6 +84,58 @@ JS_RUNTIME_DETECTED=false # EOF define(){ IFS='\n' read -r -d '' ${1}; } +# add padding to the left of a given string to +# fill to a given amount of characters with a +# given char or space +# example: +# lpad 7 "test" "-" +lpad() { + LEN=$1 + TXT=$2 + CHR=$3 + PAD="" + + L_PAD=$(($LEN - ${#TXT})) + if [ $L_PAD -ne 0 ] ; then + PAD=$(printf "%*s" ${L_PAD} " ") + fi + if [ ${#CHR} -ne 0 ] ; then + PAD=$(printf "$PAD" | tr " " "$CHR") + fi + PAD="${PAD}${TXT}" + + printf "%s" "$PAD" +} + +# log function +# prints a given message with the given log level to STDOUT +logf() { + MSG=$1 + LVL=$2 + L_LEN=7 + + if [ ${#LVL} -ne 0 ] ; then + LVL="[$(lpad $(($L_LEN-2)) $LVL " ")]" + else + LVL=$(lpad $L_LEN "" "-") + fi + + printf "%s -- %s\\n" "$LVL" "$MSG" +} + +# short functions for various log levels +log_err() { + logf "$1" "error" +} + +log_dbg() { + logf "$1" "debug" +} + +log_inf() { + logf "$1" "info" +} + # run a command or print the error run_or_error() { eval "$1" @@ -94,11 +146,9 @@ run_or_error() { # nicely output error messages and quit error() { - printf "\n" - printf "[ERROR] -- $1" - printf " --" - printf " -- have a look at our wiki: $D_WIKI_URL" - printf " -- or join us on IRC: $D_IRC_URL" + log_err "$1" + logf "have a look at our wiki: $D_WIKI_URL" + logf "or join us on IRC: $D_IRC_URL" exit 1 } @@ -112,7 +162,7 @@ interactive_check() { fd=0 #stdin if [[ -t "$fd" || -p /dev/stdin ]]; then # all is well - printf "" + printf "\n" else # non-interactive TMPFILE=`mktemp` @@ -128,13 +178,13 @@ interactive_check() { # check if all necessary binaries are available binaries_check() { for exe in "${!BINARIES[@]}"; do - printf -n "checking for $exe... " + log_inf "checking for $exe... " which "${BINARIES[$exe]}" if [ $? -ne 0 ]; then error "you are missing the '${BINARIES[$exe]}' command, please install '$exe'"; fi done - printf "" + printf "\n" } # check for rvm @@ -146,7 +196,7 @@ to install, manage and work with multiple ruby environments. For more details check out https://rvm.io// EOT rvm_check() { - printf -n "checking for rvm... " + log_inf "checking for rvm... " fn_exists rvm if [ $? -eq 0 ] ; then RVM_DETECTED=true @@ -161,13 +211,13 @@ rvm_check() { fi if $RVM_DETECTED ; then - printf "found" + log_inf "found" else - printf "not found" - printf "$RVM_MSG" + log_wrn "not found" + logf "$RVM_MSG" read -p "Press [Enter] to continue without RVM or abort this script and install RVM..." fi - printf "" + printf "\n" } # prepare ruby with rvm @@ -177,16 +227,16 @@ install_or_use_ruby() { fi # make sure we have the correct ruby version available - printf -n "checking your ruby version... " + log_inf "checking your ruby version... " rvm use $D_RUBY_VERSION >/dev/null 2>&1 if [ $? -ne 0 ] ; then - printf "not ok" + log_wrn "not ok" rvm --force install $D_RUBY_VERSION else - printf "ok" + log_inf "ok" fi - printf "" + printf "\n" } # trust and load rvmrc @@ -203,15 +253,15 @@ load_rvmrc() { fi # load .rvmrc - printf -n "loading .rvmrc ... " + log_inf "loading .rvmrc ... " . ".rvmrc" #rvm rvmrc load if [ $? -eq 0 ] ; then - printf "ok" + log_inf "ok" else - printf "not ok" + log_wrn "not ok" fi - printf "" + printf "\n" } # rvm doesn't need sudo, otherwise we do have to use it :( @@ -221,7 +271,7 @@ rvm_or_sudo() { else eval "$1" if [ $? -ne 0 ] ; then - printf "\nrunning '$1' didn't succeed, trying again with sudo...\n" + log_wrn "running '$1' didn't succeed, trying again with sudo..." run_or_error "sudo $1" fi fi @@ -240,7 +290,7 @@ For more information on ExecJS, visit -- https://github.com/sstephenson/execjs EOT js_runtime_check() { - printf -n "checking for a JavaScript runtime... " + log_inf "checking for a JavaScript runtime... " # Node.js which node >/dev/null 2>&1 @@ -259,13 +309,13 @@ js_runtime_check() { ## if $JS_RUNTIME_DETECTED ; then - printf "ok" + log_inf "ok" else - printf "not ok" + log_err "not ok" printf "$JS_RT_MSG" error "can't continue without a JS runtime" fi - printf "" + printf "\n" } # make ourselves comfy @@ -285,17 +335,17 @@ sane_environment_check() { # find or set up a working git environment git_stuff_check() { - printf "Where would you like to put the git clone, or, where is your existing git clone?" - printf "(please use a full path, not '~' or '.')" + printf "Where would you like to put the git clone, or, where is your existing git clone?\n" + printf "(please use a full path, not '~' or '.')\n" read -e -p "-> " D_GIT_CLONE_PATH - printf "" + printf "\n" test -d "$D_GIT_CLONE_PATH" \ && cd "$D_GIT_CLONE_PATH" \ && git status # folder exists? go there. is a good git clone? if [ $? -ne 0 ]; then # not a git repo, create it? - printf "the folder you specified does not exist or doesn't contain a git repo" + printf "the folder you specified does not exist or doesn't contain a git repo\n" read -p "Press [Enter] to create it... " run_or_error "mkdir -p -v \"$D_GIT_CLONE_PATH\"" # only if it doesn't exist run_or_error "git clone \"$D_REMOTE_REPO_URL\" \"$D_GIT_CLONE_PATH\"" @@ -303,12 +353,12 @@ git_stuff_check() { run_or_error "git checkout master" run_or_error "git pull" fi - printf "" + printf "\n" } # handle database decision database_question() { - printf "Which database type are you using?" + printf "Which database type are you using?\n" select choice in "MySQL" "PgSQL"; do case $choice in MySQL ) @@ -341,19 +391,19 @@ database_credentials() { # setup database # (assume we are in the Diaspora directory) database_setup() { - printf "Database setup" + log_inf "Database setup" run_or_error "cp config/database.yml.example \"$D_DB_CONFIG_FILE\"" database_question database_credentials - printf "" + printf "\n" } # install all the gems with bundler # (assume we are in the Diaspora directory) prepare_gem_bundle() { - printf "installing all required gems..." + log_inf "installing all required gems..." rvm_or_sudo "bundle install" - printf "" + printf "\n" } @@ -405,18 +455,18 @@ prepare_install_env database_setup -printf "copying diaspora.yml.example to diaspora.yml" +log_inf "copying diaspora.yml.example to diaspora.yml" run_or_error "cp config/diaspora.yml.example config/diaspora.yml" -printf "" +printf "\n" # bundle gems prepare_gem_bundle -printf "creating the default database specified in config/database.yml. please wait..." +log_inf "creating the default database specified in config/database.yml. please wait..." run_or_error "bundle exec rake db:schema:load_if_ruby --trace" -printf "" +printf "\n" define GOODBYE_MSG < Date: Sun, 4 Nov 2012 22:33:16 +0100 Subject: [PATCH 4/5] make install script ouput even smarter --- script/install.sh | 64 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 49 insertions(+), 15 deletions(-) diff --git a/script/install.sh b/script/install.sh index c32fd22e5..0ae89f9fe 100755 --- a/script/install.sh +++ b/script/install.sh @@ -68,6 +68,7 @@ D_RUBY_VERSION="1.9.3-p194" RVM_DETECTED=false JS_RUNTIME_DETECTED=false +ONE_UP="\e[1A" #### #### # # @@ -128,6 +129,10 @@ log_err() { logf "$1" "error" } +log_wrn() { + logf "$1" "warn" +} + log_dbg() { logf "$1" "debug" } @@ -178,10 +183,15 @@ interactive_check() { # check if all necessary binaries are available binaries_check() { for exe in "${!BINARIES[@]}"; do - log_inf "checking for $exe... " - which "${BINARIES[$exe]}" + LOG_MSG="checking for $exe... " + log_inf "$LOG_MSG" + + EXE_PATH=$(which "${BINARIES[$exe]}") if [ $? -ne 0 ]; then error "you are missing the '${BINARIES[$exe]}' command, please install '$exe'"; + else + printf "$ONE_UP" + log_inf "$LOG_MSG found" fi done printf "\n" @@ -196,7 +206,9 @@ to install, manage and work with multiple ruby environments. For more details check out https://rvm.io// EOT rvm_check() { - log_inf "checking for rvm... " + LOG_MSG="checking for rvm... " + log_inf "$LOG_MSG" + fn_exists rvm if [ $? -eq 0 ] ; then RVM_DETECTED=true @@ -211,7 +223,8 @@ rvm_check() { fi if $RVM_DETECTED ; then - log_inf "found" + printf "$ONE_UP" + log_inf "$LOG_MSG found" else log_wrn "not found" logf "$RVM_MSG" @@ -227,13 +240,16 @@ install_or_use_ruby() { fi # make sure we have the correct ruby version available - log_inf "checking your ruby version... " + LOG_MSG="checking your ruby version... " + log_inf "$LOG_MSG" + rvm use $D_RUBY_VERSION >/dev/null 2>&1 if [ $? -ne 0 ] ; then log_wrn "not ok" rvm --force install $D_RUBY_VERSION else - log_inf "ok" + printf "$ONE_UP" + log_inf "$LOG_MSG ok" fi printf "\n" @@ -253,11 +269,14 @@ load_rvmrc() { fi # load .rvmrc - log_inf "loading .rvmrc ... " + LOG_MSG="loading .rvmrc ... " + log_inf "$LOG_MSG" + . ".rvmrc" #rvm rvmrc load if [ $? -eq 0 ] ; then - log_inf "ok" + printf "$ONE_UP" + log_inf "$LOG_MSG ok" else log_wrn "not ok" fi @@ -290,7 +309,8 @@ For more information on ExecJS, visit -- https://github.com/sstephenson/execjs EOT js_runtime_check() { - log_inf "checking for a JavaScript runtime... " + LOG_MSG="checking for a JavaScript runtime... " + log_inf "$LOG_MSG" # Node.js which node >/dev/null 2>&1 @@ -309,7 +329,8 @@ js_runtime_check() { ## if $JS_RUNTIME_DETECTED ; then - log_inf "ok" + printf "$ONE_UP" + log_inf "$LOG_MSG found" else log_err "not ok" printf "$JS_RT_MSG" @@ -324,6 +345,7 @@ prepare_install_env() { load_rvmrc js_runtime_check + log_inf "making sure the 'bundler' gem is installed" rvm_or_sudo "gem install bundler" } @@ -346,7 +368,7 @@ git_stuff_check() { if [ $? -ne 0 ]; then # not a git repo, create it? printf "the folder you specified does not exist or doesn't contain a git repo\n" - read -p "Press [Enter] to create it... " + read -p "Press [Enter] to create it and contine... " run_or_error "mkdir -p -v \"$D_GIT_CLONE_PATH\"" # only if it doesn't exist run_or_error "git clone \"$D_REMOTE_REPO_URL\" \"$D_GIT_CLONE_PATH\"" else @@ -358,7 +380,7 @@ git_stuff_check() { # handle database decision database_question() { - printf "Which database type are you using?\n" + printf "Which database type are you using? [1|2]\n" select choice in "MySQL" "PgSQL"; do case $choice in MySQL ) @@ -379,22 +401,33 @@ database_question() { # ask for database credentials database_credentials() { - read -e -p "hostname: " D_DB_HOST - read -e -p "username: " D_DB_USER - read -e -p "password: " D_DB_PASS + read -e -p "DB hostname: " D_DB_HOST + read -e -p "DB username: " D_DB_USER + read -e -p "DB password: " D_DB_PASS run_or_error "sed -i'' -e \"s/\(host:\)[^\n]*/\1 $D_DB_HOST/g\" \"$D_DB_CONFIG_FILE\"" run_or_error "sed -i'' -e \"s/\(username:\)[^\n]*/\1 $D_DB_USER/g\" \"$D_DB_CONFIG_FILE\"" run_or_error "sed -i'' -e \"s/\(password:\)[^\n]*/\1 $D_DB_PASS/g\" \"$D_DB_CONFIG_FILE\"" + + printf "\n" } # setup database # (assume we are in the Diaspora directory) +define DATABASE_CHK_MSG << 'EOT' +you can now check the generated database config file in './config/database.yml' +and see if the specified values are correct. + +EOT database_setup() { log_inf "Database setup" run_or_error "cp config/database.yml.example \"$D_DB_CONFIG_FILE\"" database_question database_credentials + + printf "$DATABASE_CHK_MSG" + read -p "Press [Enter] to continue... " + printf "\n" } @@ -455,6 +488,7 @@ prepare_install_env database_setup +# diaspora config log_inf "copying diaspora.yml.example to diaspora.yml" run_or_error "cp config/diaspora.yml.example config/diaspora.yml" printf "\n" From aaea4a36760ce4edd03fc9b6783ceb948edcbd87 Mon Sep 17 00:00:00 2001 From: Florian Staudacher Date: Sat, 10 Nov 2012 17:57:56 +0100 Subject: [PATCH 5/5] changelog update --- Changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Changelog.md b/Changelog.md index 18b189f97..7b59ecc7e 100644 --- a/Changelog.md +++ b/Changelog.md @@ -16,6 +16,7 @@ * MessagesController. [#3657](https://github.com/diaspora/diaspora/pull/3657) * **Fixed setting:** `follow_diasporahq` has now to be set to `true` to enable following the DiasporaHQ account. Was `false` +* Removal of some bash-/linux-isms from most of the scripts, rework of 'script/install.sh' output methods. [#3679](https://github.com/diaspora/diaspora/pull/3679) ## Features