From 5af9dc26f51f48d2940739b293bf0e02c29004c2 Mon Sep 17 00:00:00 2001
From: Gofannon <17145502+Gofannon@users.noreply.github.com>
Date: Wed, 8 May 2019 14:42:53 +0200
Subject: [PATCH] WIP - rework automated upgrade method
Does not work at the moment.
---
scripts/upgrade | 18 +++++++++++++++++-
scripts/upgrade_cheky.php | 37 +++++++++++++++++++++++++++++++++++++
2 files changed, 54 insertions(+), 1 deletion(-)
create mode 100644 scripts/upgrade_cheky.php
diff --git a/scripts/upgrade b/scripts/upgrade
index 98404ed..787aebf 100644
--- a/scripts/upgrade
+++ b/scripts/upgrade
@@ -109,7 +109,8 @@ ynh_add_fpm_config
#=================================================
# ...
#=================================================
-#todo: part needed ?
+
+ynh_print_info "Running specific upgrade..."
# Verify the checksum and backup the file if it's different
#ynh_backup_if_checksum_is_different "$final_path/CONFIG_FILE"
# Recalculate and store the config file checksum into the app settings
@@ -120,7 +121,22 @@ ynh_add_fpm_config
# needs to be edited with latest version
# Also avoid to make file "$final_path/version.php" writable
+# Give full access to "$app" so php script can do "its own magic stuff"
+chown -R $app: $final_path
+
#exec_as "$app" "/usr/bin/php $YNH_CWD/upgrade_cheky.php $final_path"
+sudo -u "$app" "/usr/bin/php $YNH_CWD/upgrade_cheky.php $final_path"
+
+#=================================================
+# CONFIGURE HOOKS
+#=================================================
+### TODO: Better to use a hook like "post_app_upgrade" ?
+#ynh_print_info "Running post upgrade recipe..."
+
+#ynh_replace_string "__FINALPATH__" "$final_path" "../hooks/post_app_install"
+#ynh_replace_string "__FINALPATH__" "$final_path" "../hooks/post_app_remove"
+
+
#=================================================
# GENERIC FINALIZATION
#=================================================
diff --git a/scripts/upgrade_cheky.php b/scripts/upgrade_cheky.php
new file mode 100644
index 0000000..645af4d
--- /dev/null
+++ b/scripts/upgrade_cheky.php
@@ -0,0 +1,37 @@
+get("storage", "type", "files");
+if ($storageType == "db") {
+ $userStorage = new \App\Storage\Db\User($dbConnection);
+} else {
+ $userStorage = new \App\Storage\File\User(DOCUMENT_ROOT."/var/users.db");
+}
+
+//require $root_path."/bootstrap.php";
+
+$_POST = array(
+ "upgrade" => 1,
+);
+
+require $root_path."/app/admin/scripts/upgrade.php";
+
+// S'il y a des erreurs, on les écrit dans STDERR et on quitte
+// avec un code erreur.
+#if (!empty($errors)) {
+# fwrite(STDERR, str_replace(
+# array("
", "
"), "", implode("\n", $errors)
+# );
+# exit(1);
+#}