From 8fdbf1043bf5ebafe4b5a7cf8426f5b1c624790e Mon Sep 17 00:00:00 2001 From: uzulla Date: Mon, 15 Mar 2021 00:51:36 +0900 Subject: [PATCH 01/11] WIP: Implement system update feature #39 --- .../en_US.UTF-8/LC_MESSAGES/messages.po | 15 +++ .../ja_JP.UTF-8/LC_MESSAGES/messages.mo | Bin 34279 -> 34634 bytes .../ja_JP.UTF-8/LC_MESSAGES/messages.po | 15 +++ app/src/Model/SystemUpdateModel.php | 102 ++++++++++++++++++ .../Admin/SystemUpdateController.php | 24 +++++ app/twig_templates/admin/layouts/default.twig | 1 + .../admin/system_update/index.twig | 64 +++++++++++ 7 files changed, 221 insertions(+) create mode 100644 app/src/Model/SystemUpdateModel.php create mode 100644 app/src/Web/Controller/Admin/SystemUpdateController.php create mode 100644 app/twig_templates/admin/system_update/index.twig diff --git a/app/locale/en_US.UTF-8/LC_MESSAGES/messages.po b/app/locale/en_US.UTF-8/LC_MESSAGES/messages.po index e8bb58da..2134377e 100644 --- a/app/locale/en_US.UTF-8/LC_MESSAGES/messages.po +++ b/app/locale/en_US.UTF-8/LC_MESSAGES/messages.po @@ -2503,3 +2503,18 @@ msgstr "" msgid "Name that cannot be specified" msgstr "" + +msgid "System Update" +msgstr "" + +msgid "Releases" +msgstr "" + +msgid "Version" +msgstr "" + +msgid "Operation" +msgstr "" + +msgid "Release information query failed. Please try again later." +msgstr "" diff --git a/app/locale/ja_JP.UTF-8/LC_MESSAGES/messages.mo b/app/locale/ja_JP.UTF-8/LC_MESSAGES/messages.mo index 099b8ce67c4d60e0586c558da8e01b02f40fd4cf..0fcfd1d55703a2c00bb83240f62b43f6b0264697 100644 GIT binary patch delta 10876 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 ['header' => "User-Agent: fc2blog_installer"]]; + + $releases_json = @file_get_contents( + static::$releases_api_url, + false, + stream_context_create($options) + ); + + // rate limit等 + $pos = strpos($http_response_header[0], '403'); + if ($pos !== false) { + var_dump($http_response_header); + return null; + } + + $pos = strpos($http_response_header[0], '200'); + if ($pos === false) { + throw new RuntimeException("api request failed: status code {$http_response_header[0]}"); + } + + if ($releases_json === false) { + throw new RuntimeException("api request failed"); + } + + try { + $releases_data = json_decode($releases_json, true, 512, JSON_THROW_ON_ERROR); + } catch (JsonException $e) { + throw new RuntimeException("json parse failed:{$e->getMessage()} on {$e->getFile()}:{$e->getLine()}"); + } + + // app/temp/releases.json にjsonを書き出す + + return $releases_data; + } + + /** + * Get download url of `fc2blog_dist.zip` in assets from release array. + * @param array $release + * @return string|null + */ + public static function getZipDownloadUrl(array $release): ?string + { + if (!isset($release['assets'])) { + return null; + } + + $found_asset = null; + foreach ($release['assets'] as $release_asset) { + if ($release_asset['name'] === 'fc2blog_dist.zip') { + $found_asset = $release_asset; + } + } + + if (!is_array($found_asset) || !isset($found_asset['browser_download_url'])) { + return null; + } + + return $found_asset['browser_download_url']; + } + + /** + * Get latest release that has vX.X.X tag from release list. + * @param $release_list + * @return array|null + */ + public static function getValidLatestRelease($release_list): ?array + { + foreach ($release_list as $release) { + if (preg_match("/\Av[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\\z/", $release['tag_name'])) { + if (isset($release['assets']) && is_array($release['assets']) && count($release['assets']) > 0) { + return $release; + } + } + } + return null; + } + +} diff --git a/app/src/Web/Controller/Admin/SystemUpdateController.php b/app/src/Web/Controller/Admin/SystemUpdateController.php new file mode 100644 index 00000000..c15b476a --- /dev/null +++ b/app/src/Web/Controller/Admin/SystemUpdateController.php @@ -0,0 +1,24 @@ +set('release_list', $release_list); + + // TODO get this system version + + return 'admin/system_update/index.twig'; + } + + // TODO implement update action + +} + diff --git a/app/twig_templates/admin/layouts/default.twig b/app/twig_templates/admin/layouts/default.twig index 9a49f9a4..58895bbc 100644 --- a/app/twig_templates/admin/layouts/default.twig +++ b/app/twig_templates/admin/layouts/default.twig @@ -96,6 +96,7 @@
  • {{ _('Category management') }}
  • {{ _('List of tags') }}
  • {{ _('Blog setting') }}
  • +
  • {{ _('System Update') }}
  • {% endif %} diff --git a/app/twig_templates/admin/system_update/index.twig b/app/twig_templates/admin/system_update/index.twig new file mode 100644 index 00000000..d0d097c8 --- /dev/null +++ b/app/twig_templates/admin/system_update/index.twig @@ -0,0 +1,64 @@ +{% extends 'admin/layouts/default.twig' %} +{% block title %}{{ _('System Update') }}{% endblock %} + +{% block content %} +

    {{ _('System Update') }}

    + +

    {{ _('Releases') }}

    + + + + {% if not release_list %} + {{ _('Release information query failed. Please try again later.') }} + {% else %} + + + + + + + + + {% for release in release_list %} + + + + + + {% endfor %} +
    {{ _('Version') }}{{ _('Description') }}{{ _('Operation') }}
    {{ release.tag_name }} +

    {{ release.name }}

    +

    {{ release.body|nl2br }}

    +
    + +
    + {% endif %} + +{% endblock %} From a54bbfc76b9c3e4864a39e53673ea822d57fd983 Mon Sep 17 00:00:00 2001 From: uzulla Date: Mon, 15 Mar 2021 11:43:50 +0900 Subject: [PATCH 02/11] Improve installer. delete unnecessary overwrite blocker. - Support overwrite install (aka force update) now. - The installer does not able to be read settings from exists install yet. --- dist_zip/installer/fc2blog_installer.php | 316 +++++++++++------------ 1 file changed, 155 insertions(+), 161 deletions(-) diff --git a/dist_zip/installer/fc2blog_installer.php b/dist_zip/installer/fc2blog_installer.php index 068115eb..70ef608f 100644 --- a/dist_zip/installer/fc2blog_installer.php +++ b/dist_zip/installer/fc2blog_installer.php @@ -90,154 +90,153 @@ - - UPDATE IS NOT IMPLEMENTED YET. please delete index.php(and apps). - - -
    - - -

    # install source

    -
      -
    • -
    • - -
    • -
    - -

    # install dir

    - (index.php and assets will be install to - (this dir). this is not changeable.)
    -
    - Please select app directory. (app directory contain code and config. No need to expose.)
    -
      -
    • - -
    • -
    • -
    • - -
    • -
    -

    # generate config.php

    - If you want generate app/config.php.
    - Please change to your server settings.
    -
      -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    - -
    - - -
    - + } + } + + +

    # install source

    +
      +
    • +
    • + +
    • +
    + +

    # install dir

    + (index.php and assets will be install to + (this dir). this is not changeable.)
    +
    + Please select app directory. (app directory contain code and config. No need to expose.)
    +
      +
    • + +
    • +
    • +
    • + +
    • +
    +

    # generate config.php

    + If you want generate app/config.php.
    + Please change to your server settings.
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    + +
    + + +

    Extract....

    @@ -305,23 +304,18 @@ function block_duplicate_execute() { } // check exists app dir - if (file_exists($app_dir)) { - // TODO update mode - exit("update is not implemented yet"); - } else { - // new install mode - + if (!file_exists($app_dir)) { mkdir($app_dir); + } - // deploy files - $files_in_tmp_dir_app = glob($tmp_dir_app . '/{*,.[!.]*,..?*}', GLOB_BRACE); - foreach ($files_in_tmp_dir_app as $files_in_tmp_dir_app_row) { - copy_r($files_in_tmp_dir_app_row, $app_dir); // todo error handling - } - $files_in_tmp_dir_public = glob($tmp_dir_public . '/{*,.[!.]*,..?*}', GLOB_BRACE); - foreach ($files_in_tmp_dir_public as $files_in_tmp_dir_public_row) { - copy_r($files_in_tmp_dir_public_row, __DIR__); // todo error handling - } + // deploy files + $files_in_tmp_dir_app = glob($tmp_dir_app . '/{*,.[!.]*,..?*}', GLOB_BRACE); + foreach ($files_in_tmp_dir_app as $files_in_tmp_dir_app_row) { + copy_r($files_in_tmp_dir_app_row, $app_dir); // todo error handling + } + $files_in_tmp_dir_public = glob($tmp_dir_public . '/{*,.[!.]*,..?*}', GLOB_BRACE); + foreach ($files_in_tmp_dir_public as $files_in_tmp_dir_public_row) { + copy_r($files_in_tmp_dir_public_row, __DIR__); // todo error handling } // generate config.php @@ -386,7 +380,7 @@ function copy_r(string $src_path, string $dest_dir) // 単なるファイルやSymlinkならコピーして終わり if (!is_dir($src_path)) { - copy($src_path, $dest_dir."/".$src_file_name); + copy($src_path, $dest_dir . "/" . $src_file_name); return; } From fea6a845002954a2c8d0055e0418b162acb0a4f3 Mon Sep 17 00:00:00 2001 From: uzulla Date: Tue, 16 Mar 2021 01:49:53 +0900 Subject: [PATCH 03/11] Improve installer. support to update exists installed. - Try find app dir from index.php setting. - Improve some UX. - Update texts. --- dist_zip/installer/fc2blog_installer.php | 73 ++++++++++++++++-------- public/index.php | 8 ++- 2 files changed, 55 insertions(+), 26 deletions(-) diff --git a/dist_zip/installer/fc2blog_installer.php b/dist_zip/installer/fc2blog_installer.php index 70ef608f..be4b2bf3 100644 --- a/dist_zip/installer/fc2blog_installer.php +++ b/dist_zip/installer/fc2blog_installer.php @@ -18,7 +18,7 @@ - fc2blog installer (alpha version) + fc2blog installer