From d560d8d8520bdfb413b0b81e82ca7141c9ff9ad1 Mon Sep 17 00:00:00 2001 From: Josue-T Date: Tue, 7 Mar 2017 16:14:34 +0100 Subject: [PATCH] Use new findport fonction (#20) * Create check_process (#1) * Update to seafile 6.0.8 * Use new findport fonction * Use new findport fonction * Fix typo --- scripts/_common.sh | 31 ++++++++++++------------------- scripts/install | 9 +++------ scripts/restore | 23 ----------------------- 3 files changed, 15 insertions(+), 48 deletions(-) diff --git a/scripts/_common.sh b/scripts/_common.sh index e84dd44..0e1e07c 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -58,20 +58,6 @@ CHECK_VAR () { # Vérifie que la variable n'est pas vide. test -n "$1" || (echo "$2" >&2 && false) } -# Ignore the yunohost-cli log to prevent errors with conditionals commands -# usage: NO_LOG COMMAND -# Simply duplicate the log, execute the yunohost command and replace the log without the result of this command -# It's a very badly hack... -# Petite copie perso à mon usage ;) -NO_LOG () { - ynh_cli_log=/var/log/yunohost/yunohost-cli.log - sudo cp -a ${ynh_cli_log} ${ynh_cli_log}-move - eval $@ - exit_code=$? - sudo mv ${ynh_cli_log}-move ${ynh_cli_log} - return $? -} - CHECK_PATH () { # Vérifie la présence du / en début de path. Et son absence à la fin. if [ "${path:0:1}" != "/" ]; then # Si le premier caractère n'est pas un / path="/$path" # Ajoute un / en début de path @@ -81,11 +67,18 @@ CHECK_PATH () { # Vérifie la présence du / en début de path. Et son absence fi } -FIND_PORT () { # Cherche un port libre. -# $1 = Numéro de port pour débuter la recherche. +# Find a free port and return it +# +# example: port=$(ynh_find_port 8080) +# +# usage: ynh_find_port begin_port +# | arg: begin_port - port to start to search +ynh_find_port () { port=$1 - while ! sudo yunohost app checkport $port ; do - port=$((port+1)) + test -n "$port" || ynh_die "The argument of ynh_find_port must be a valid port." + while netcat -z 127.0.0.1 $port # Check if the port is free + do + port=$((port+1)) # Else, pass to next port done - CHECK_VAR "$port" "port empty" + echo $port } diff --git a/scripts/install b/scripts/install index b9b11a2..570de8d 100644 --- a/scripts/install +++ b/scripts/install @@ -48,12 +48,9 @@ sudo mv seafile-server-$seafile_version/* $final_path/seafile-server-$seafile_ve sudo mv '/tmp/seafile_src.tar.gz' $final_path/installed/seafile-server_${seafile_version}.tar.gz # Find available ports -NO_LOG FIND_PORT 8000 -seahub_port=$port -NO_LOG FIND_PORT 8082 -fileserver_port=$port -NO_LOG FIND_PORT 8080 -webdav_port=$port +seahub_port=$(ynh_find_port 8000) +fileserver_port=$(ynh_find_port 8082) +webdav_port=$(ynh_find_port 8080) # store config in yunohost ynh_app_setting_set $app seahub_port $seahub_port diff --git a/scripts/restore b/scripts/restore index 175beea..df56646 100644 --- a/scripts/restore +++ b/scripts/restore @@ -65,20 +65,6 @@ CHECK_VAR () { # Vérifie que la variable n'est pas vide. test -n "$1" || (echo "$2" >&2 && false) } -# Ignore the yunohost-cli log to prevent errors with conditionals commands -# usage: NO_LOG COMMAND -# Simply duplicate the log, execute the yunohost command and replace the log without the result of this command -# It's a very badly hack... -# Petite copie perso à mon usage ;) -NO_LOG () { - ynh_cli_log=/var/log/yunohost/yunohost-cli.log - sudo cp -a ${ynh_cli_log} ${ynh_cli_log}-move - eval $@ - exit_code=$? - sudo mv ${ynh_cli_log}-move ${ynh_cli_log} - return $? -} - CHECK_PATH () { # Vérifie la présence du / en début de path. Et son absence à la fin. if [ "${path:0:1}" != "/" ]; then # Si le premier caractère n'est pas un / path="/$path" # Ajoute un / en début de path @@ -88,15 +74,6 @@ CHECK_PATH () { # Vérifie la présence du / en début de path. Et son absence fi } -FIND_PORT () { # Cherche un port libre. -# $1 = Numéro de port pour débuter la recherche. - port=$1 - while ! sudo yunohost app checkport $port ; do - port=$((port+1)) - done - CHECK_VAR "$port" "port empty" -} - ######## End of common fonctions # Init script