Skip to content
Extraits de code Groupes Projets
Valider ec5289bd rédigé par Florian Staudacher's avatar Florian Staudacher
Parcourir les fichiers

continue working on install script [ci skip]

parent b99e77d8
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -32,7 +32,7 @@ other ideas what we could do
# #
#### ####
BINARIES="git ruby gem bundle" # required programs
BINARIES="git ruby gem bundle sed" # required programs
D_GIT_CLONE_PATH="/srv/diaspora" # path for diaspora
......@@ -42,6 +42,15 @@ D_WIKI_URL="https://github.com/diaspora/diaspora/wiki"
D_IRC_URL="irc://freenode.net/diaspora"
D_DB="mysql"
D_DB_CONFIG_FILE="config/database.yml"
D_DB_HOST="localhost"
D_DB_USER="diaspora"
D_DB_PASS="diaspora"
#### ####
# #
......@@ -75,7 +84,7 @@ error() {
}
# check if all necessary binaries are available
sane_environment_check() {
binaries_check() {
for exe in $BINARIES; do
echo -n "checking for $exe... "
which "$exe"
......@@ -86,25 +95,46 @@ sane_environment_check() {
echo ""
}
# check for rvm
define RVM_MSG <<'EOT'
RVM was not found on your system (or it isn't working properly).
It is higly recommended to use it, since it's making it extremely easy
to install, manage and work with multiple ruby environments.
For more details check out https://rvm.io//
EOT
rvm_check() {
echo "checking for rvm..."
rvm >/dev/null 2>&1
if [ $? -gt 0 ]; then
echo "$RVM_MSG"
read -p "Press [Enter] to continue without RVM or abort this script and install RVM"
fi
echo ""
}
# do some sanity checking
sane_environment_check() {
binaries_check
rvm_check
}
# find or set up a working git environment
git_stuff_check() {
echo "Where would you like to put the git clone?\n(or, where is your git clone)? "
read -e -p "-> " -i "$D_GIT_CLONE_PATH" D_GIT_CLONE_PATH
echo "Where would you like to put the git clone?"
echo "(or, where is your existing git clone)?"
read -e -p "-> " D_GIT_CLONE_PATH
echo ""
test -d "$D_GIT_CLONE_PATH" \
&& cd "$D_GIT_CLONE_PATH" \
&& git status "$D_GIT_CLONE_PATH" # folder exists? go there. is a good git clone?
&& git status # folder exists? go there. is a good git clone?
if [ $? -gt 0 ]; then
mkdir "$D_GIT_CLONE_PATH" # only if it doesn't exist
# not a git repo, create it?
echo "the folder you specified does not contain a git repo, create one?"
select choice in "Yes" "No"; do
case $choice in
Yes ) git clone "$D_REMOTE_REPO_URL" "$D_GIT_CLONE_PATH"; break ;;
No ) error "please make sure you have a git clone somewhere" ;;
esac
done
echo "the folder you specified does not contain a git repo"
read -p "Press [Enter] to create it... "
git clone "$D_REMOTE_REPO_URL" "$D_GIT_CLONE_PATH"
else
git checkout master
git pull
......@@ -112,6 +142,48 @@ git_stuff_check() {
echo ""
}
# handle database decision
database_question() {
echo "Which database type are you using?"
select choice in "MySQL" "PgSQL"; do
case $choice in
MySQL )
D_DB="mysql"
# we're done, mysql is default
break
;;
PgSQL )
D_DB="postgres"
# replace default with postgres
sed -i'' -r 's/(<<: \*mysql)/#\1/g' $D_DB_CONFIG_FILE
sed -i'' -r 's/(#(<<: \*postgres))/\2/g' $D_DB_CONFIG_FILE
break
;;
esac
done
}
# 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
sed -i'' -r "s/(host:)[^\n]*/\1 $D_DB_HOST/g" $D_DB_CONFIG_FILE
sed -i'' -r "s/(username:)[^\n]*/\1 $D_DB_USER/g" $D_DB_CONFIG_FILE
sed -i'' -r "s/(password:)[^\n]*/\1 $D_DB_PASS/g" $D_DB_CONFIG_FILE
}
# setup database
# (assume we are in the Diaspora directory)
database_setup() {
echo "Database setup"
cp config/database.yml.example config/database.yml
database_question
database_credentials
echo ""
}
#### ####
......@@ -145,10 +217,9 @@ git_stuff_check
cd "$D_GIT_CLONE_PATH"
echo "initializing Diaspora*"
echo "copying database.yml.example to database.yml"
cp config/database.yml.example config/database.yml
echo ""
# configure database setup
database_setup
echo "copying application.yml.example to application.yml"
cp config/application.yml.example config/application.yml
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter