Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/diaspora/diaspora.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/script
diff options
context:
space:
mode:
authorBenjamin Neff <benjamin@coding4coffee.ch>2018-11-02 04:12:28 +0300
committerDennis Schubert <mail@dennis-schubert.de>2018-11-08 07:15:47 +0300
commit9723e283e1f8619d30421bfcf3e40075e48fc36f (patch)
treee03bdb547741128fda01333401f095a96eb377b6 /script
parent3c55a425c743fb17e8c538e9a56cacea2b8a67d6 (diff)
Use sudo for docker if socket is not writable
closes #7921
Diffstat (limited to 'script')
-rwxr-xr-xscript/diaspora-dev60
1 files changed, 35 insertions, 25 deletions
diff --git a/script/diaspora-dev b/script/diaspora-dev
index 7a2f51e60..fe106edba 100755
--- a/script/diaspora-dev
+++ b/script/diaspora-dev
@@ -158,6 +158,16 @@ print_usage_full() {
# ----- Helper functions -----
+dia_docker_compose() {
+ # Check permissions of docker socket and use sudo if needed
+ if [ -r "/var/run/docker.sock" ] && [ -w "/var/run/docker.sock" ]; then
+ docker-compose "$@"
+ else
+ echo "Attention: Docker socket not writable, using sudo for the docker command. You might be asked for your password now." >&2
+ sudo -E docker-compose "$@"
+ fi
+}
+
dia_fetch_upstream() {
# Add and fetch upstream develop branch
if ! git remote show | grep -q '^upstream$'; then
@@ -181,12 +191,12 @@ exit_if_unconfigured() {
dia_is_running() {
# Check if diaspora container is running
- docker-compose ps --services --filter status=running | grep -qx 'diaspora'
+ dia_docker_compose ps --services --filter status=running | grep -qx 'diaspora'
}
dia_is_db_running() {
# Check if db container is running
- docker-compose ps --services --filter status=running | grep -qx $DIASPORA_DOCKER_DB
+ dia_docker_compose ps --services --filter status=running | grep -qx $DIASPORA_DOCKER_DB
}
dia_get_db() {
@@ -199,14 +209,14 @@ dia_get_db() {
dia_build() {
if [ $# -gt 0 ] && [ "$1" == "--no-cache" ]; then nocache="--no-cache"; fi
# Build the diaspora Docker container (diaspora:dev-latest)
- docker-compose build $nocache diaspora
+ dia_docker_compose build $nocache diaspora
}
dia_bundle() {
# Run bundle in order to install all gems into $DIASPORA_ROOT
# Do not start database, not required and sometimes not yet configured
echo "Installing gems via bundler ..."
- docker-compose run \
+ dia_docker_compose run \
--rm \
--no-deps $1 \
-e DIA_NODB=1 \
@@ -223,7 +233,7 @@ dia_clean() {
;;
esac
done
- docker-compose down -v
+ dia_docker_compose down -v
if [ ! -z $dia_config_delete ]; then
rm "$DIASPORA_CONFIG_DIA" "$DIASPORA_CONFIG_DB"
fi
@@ -284,7 +294,7 @@ dia_config() {
dia_cucumber() {
# Run cucumber tests
if [ "$1" == "-d" ]; then detach="-d"; shift; fi
- docker-compose run \
+ dia_docker_compose run \
--rm $detach \
diaspora \
bin/cucumber "$@"
@@ -296,21 +306,21 @@ dia_exec() {
if [ "$1" == "-d" ]; then detach="-d"; shift; fi
if dia_is_running; then
# Use a running container
- docker-compose exec $detach diaspora /exec-entrypoint.sh "$@"
+ dia_docker_compose exec $detach diaspora /exec-entrypoint.sh "$@"
else
if ! dia_is_db_running; then not_running=1; fi
# Start a new container
echo "No running instance found, starting new one for command execution ..."
- docker-compose run --rm $detach --service-ports diaspora "$@"
+ dia_docker_compose run --rm $detach --service-ports diaspora "$@"
if [ ! -z $not_running ]; then
- docker-compose stop $DIASPORA_DOCKER_DB
+ dia_docker_compose stop $DIASPORA_DOCKER_DB
fi
fi
}
dia_jasmine() {
# Run jasmine tests
- docker-compose run \
+ dia_docker_compose run \
--rm $1 \
-e RAILS_ENV=test \
diaspora \
@@ -327,14 +337,14 @@ dia_logs() {
;;
esac
done
- docker-compose logs -f --tail=100 $dia_follow
+ dia_docker_compose logs -f --tail=100 $dia_follow
}
dia_migrate() {
# Run migrations if configured
echo "Creating and/or migrating database ..."
exit_if_unconfigured
- docker-compose run \
+ dia_docker_compose run \
--rm $1 \
diaspora \
bin/rake db:create db:migrate
@@ -348,7 +358,7 @@ dia_pronto() {
dia_fetch_upstream
fi
cd - >/dev/null
- docker-compose run \
+ dia_docker_compose run \
--rm \
--no-deps \
diaspora \
@@ -366,11 +376,11 @@ dia_restart() {
done
if dia_is_running; then
if [ -z $dia_restart_full ]; then
- docker-compose exec \
+ dia_docker_compose exec \
diaspora \
bin/eye restart diaspora
else
- docker-compose restart
+ dia_docker_compose restart
fi
else
dia_start
@@ -384,19 +394,20 @@ dia_rspec() {
# Assumption: If (and only if) the tested file is not available, assets need be regenerated
[ -f "$DIASPORA_ROOT"/public/404.html ] && assets="assets:generate_error_pages"
# Prepare database (and assets if necessary)
- docker-compose run \
+ dia_docker_compose run \
--rm \
-e RAILS_ENV=test \
diaspora \
bin/rake db:create db:migrate $assets
# Run tests
- docker-compose run \
+ dia_docker_compose run \
--rm \
diaspora \
bin/rspec "$@"
}
dia_setup() {
+ # Prepare the entire environment for development
for i in "$@"; do
case "$i" in
--force)
@@ -408,7 +419,6 @@ dia_setup() {
;;
esac
done
- # Prepare the entire environment for development
(
set -e
dia_build $build
@@ -418,15 +428,15 @@ dia_setup() {
dia_setup_tests $setup_tests
)
# stop db afterwards as it is not needed while dia is not running
- docker-compose stop $DIASPORA_DOCKER_DB
+ dia_docker_compose stop $DIASPORA_DOCKER_DB
}
dia_setup_tests() {
# Prepare all possible tests
# stop db if it was not running before
echo "Setting up environment for tests ..."
- if ! dia_is_db_running; then stopdb="docker-compose stop $DIASPORA_DOCKER_DB"; fi
- docker-compose run \
+ if ! dia_is_db_running; then stopdb="dia_docker_compose stop $DIASPORA_DOCKER_DB"; fi
+ dia_docker_compose run \
--rm \
-e RAILS_ENV=test \
diaspora \
@@ -442,19 +452,19 @@ dia_start() {
else
options=$1
fi
- docker-compose up $options diaspora
+ dia_docker_compose up $options diaspora
}
dia_status() {
# Print running containers and current images
- docker-compose ps
+ dia_docker_compose ps
echo
- docker-compose images
+ dia_docker_compose images
}
dia_stop() {
# Stop all containers
- docker-compose stop
+ dia_docker_compose stop
}