コマンドラインのみでMoodleのインストールを行う記事を書きましたが、
その処理はPHPスクリプトを作成して実行させています。
しかし、途中でインストールするMoodleのバージョン番号を設定する箇所があり、Moodleのgitで管理されている最新のバージョン番号を設定する必要があります。
最新バージョンの確認方法は、
git clone git://git.moodle.org/moodle.git
を実行して、Moodleのパッケージを取ってきた後に、
git branch -a
しかし、MoodleインストールをPHPスクリプトで自動処理する際には、
最新のバージョン番号を確認する処理をPHPスクリプトの中でやる必要があります。
筆者はPHPの文法に明るくないため、ChatGPT
https://chat.openai.com
を使って、一連の処理を実行するPHPスクリプトをChatGPTに作成してもらいました。
ChatGPTには、以下の命令を投げました。
以下の内容が記載されているTXTファイルから、MOODLE_ の直後に記載されている数字のうちで、最大の値を取得するPHPのスクリプトを教えてください。
local_401_STABLE
master
remotes/origin/HEAD -> origin/master
remotes/origin/MOODLE_13_STABLE
remotes/origin/MOODLE_14_STABLE
remotes/origin/MOODLE_15_STABLE
remotes/origin/MOODLE_16_STABLE
remotes/origin/MOODLE_17_STABLE
remotes/origin/MOODLE_18_STABLE
remotes/origin/MOODLE_19_STABLE
remotes/origin/MOODLE_20_STABLE
remotes/origin/MOODLE_21_STABLE
remotes/origin/MOODLE_22_STABLE
remotes/origin/MOODLE_23_STABLE
remotes/origin/MOODLE_24_STABLE
remotes/origin/MOODLE_25_STABLE
remotes/origin/MOODLE_26_STABLE
remotes/origin/MOODLE_27_STABLE
remotes/origin/MOODLE_28_STABLE
remotes/origin/MOODLE_29_STABLE
remotes/origin/MOODLE_30_STABLE
remotes/origin/MOODLE_310_STABLE
remotes/origin/MOODLE_311_STABLE
ChatGPTからのレスポンスは以下。
以下のようなPHPスクリプトを使用することで、MOODLE_の直後に記載されている数字のうちで最大の値を取得することができます。
<?php
// 対象のテキストファイルのパス
$file_path = '/home/hoge/file.txt';
// テキストファイルを読み込み、MOODLE_の直後に記載されている数字を抽出し、最大値を取得
$max_version = 0;
$file_lines = file($file_path, FILE_IGNORE_NEW_LINES);
foreach ($file_lines as $line) {
if (preg_match('/MOODLE_([0-9]+)_STABLE/', $line, $matches)) {
$version = $matches[1];
if ($version > $max_version) {
$max_version = $version;
}
}
}
echo "最大のバージョン番号: MOODLE_" . $max_version . PHP_EOL;
?>
上記のスクリプトは、指定したテキストファイル ($file_path 変数) を file() 関数を使用して読み込み、各行に対して正規表現を使用して MOODLE_ の直後に記載されている数字を抽出し、最大のバージョン番号を $max_version 変数に保持します。最終的に、最大のバージョン番号を表示します。
■phpスクリプトの作成
ChatGPTの返答をもとに、phpスクリプトを作っていきます。
はじめに、LINUX上で、git branch -aを実行した結果(以下)を
サンプルファイルtest.txtに保存します。
local_401_STABLE
master
remotes/origin/HEAD -> origin/master
remotes/origin/MOODLE_13_STABLE
remotes/origin/MOODLE_14_STABLE
remotes/origin/MOODLE_15_STABLE
remotes/origin/MOODLE_16_STABLE
remotes/origin/MOODLE_17_STABLE
remotes/origin/MOODLE_18_STABLE
remotes/origin/MOODLE_19_STABLE
remotes/origin/MOODLE_20_STABLE
remotes/origin/MOODLE_21_STABLE
remotes/origin/MOODLE_22_STABLE
remotes/origin/MOODLE_23_STABLE
remotes/origin/MOODLE_24_STABLE
remotes/origin/MOODLE_25_STABLE
remotes/origin/MOODLE_26_STABLE
remotes/origin/MOODLE_27_STABLE
remotes/origin/MOODLE_28_STABLE
remotes/origin/MOODLE_29_STABLE
remotes/origin/MOODLE_30_STABLE
remotes/origin/MOODLE_310_STABLE
remotes/origin/MOODLE_311_STABLE
次に、ChatGPTが返してきたphpスクリプトを、
get_latest_Moodle_version_num.php に記入して、保存します。
最後にphpスクリプトを実行します。
chmod 600 get_latest_Moodle_version_num.php
php get_latest_Moodle_version_num.php
実行結果はこちら。
最大のバージョン番号: MOODLE_311