From c046535b4eb0aa402601e090c44a7be07763e4a5 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Sun, 24 Jun 2018 19:20:13 +0200 Subject: [PATCH 1/4] Don't use /tmp anymore --- scripts/upgrade | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/upgrade b/scripts/upgrade index 6c54ca5..ab91500 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -189,7 +189,7 @@ do ynh_replace_string "__SHA256_SUM__" "$nextcloud_source_sha256" "../conf/app.src" # Create a temporary directory - tmpdir=$(mktemp -d) + tmpdir="${final_path}_temp_upgrade_dir" # Install the next nextcloud version in $tmpdir ynh_setup_source "$tmpdir" @@ -208,6 +208,7 @@ do # Replace the old nextcloud by the new one ynh_secure_remove "$final_path" mv "$tmpdir" "$final_path" + ynh_secure_remove "$tmpdir" # Set write access for the following commands chown -R $app: "$final_path" "$datadir" From 30c19929cbcad3443c67d410e816b30026f659a2 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Wed, 29 Aug 2018 21:07:53 +0200 Subject: [PATCH 2/4] Add a new helper to create temporary directory --- scripts/_common.sh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/scripts/_common.sh b/scripts/_common.sh index 7ce131e..77b2812 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -356,3 +356,27 @@ ynh_multimedia_addaccess () { groupadd -f multimedia usermod -a -G multimedia $user_name } + +ynh_smart_mktemp () { + local min_size="${1:-300}" + # Transform the minimum size from megabytes to kilobytes + min_size=$(( $min_size * 1024 )) + + # Check if there's enough free space in a directory + is_there_enough_space () { + local free_space=$(df --output=avail "$1" | sed 1d) + test $free_space -ge $min_size + } + + if is_there_enough_space /tmp; then + local tmpdir=/tmp + elif is_there_enough_space /var; then + local tmpdir=/var + elif is_there_enough_space /; then + local tmpdir=/ + elif is_there_enough_space /home; then + local tmpdir=/home + fi + + echo "$(sudo mktemp --directory --tmpdir="$tmpdir")" +} From 87d92b35a02e5c929c4b57d59e6d61da22da7222 Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Wed, 29 Aug 2018 21:10:08 +0200 Subject: [PATCH 3/4] Use ynh_smart_mktemp --- scripts/upgrade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/upgrade b/scripts/upgrade index ab91500..44327db 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -189,7 +189,7 @@ do ynh_replace_string "__SHA256_SUM__" "$nextcloud_source_sha256" "../conf/app.src" # Create a temporary directory - tmpdir="${final_path}_temp_upgrade_dir" + tmpdir="$(ynh_smart_mktemp 300)" # Install the next nextcloud version in $tmpdir ynh_setup_source "$tmpdir" From d76dc401512c378649918b4a7c6d0c372d3c7e5a Mon Sep 17 00:00:00 2001 From: Maniack Crudelis Date: Fri, 21 Sep 2018 23:32:02 +0200 Subject: [PATCH 4/4] ynh_die if no free space --- scripts/_common.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/_common.sh b/scripts/_common.sh index 77b2812..1e2bd82 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -376,6 +376,8 @@ ynh_smart_mktemp () { local tmpdir=/ elif is_there_enough_space /home; then local tmpdir=/home + else + ynh_die "Insufficient free space to continue..." fi echo "$(sudo mktemp --directory --tmpdir="$tmpdir")"