zencartアップグレードを一括で行えるツール

zencartはアップグレードウィザードのような機能がなく、自分でバージョンアップした際の差分ファイルをチェックして自力で更新しなくてはいけません。とっても面倒、と思っていていいやり方はないかと探っていて、 https://www.zen-cart.com/docs/ こちらのドキュメントに更新されたファイル、削除されたファイル、新たに作られたファイルと載っているじゃありませんか。

zencartのupdateで更新されたファイル

これを元にスクリプトで新バージョンから差分ファイルを取り出してみました。

更新されたファイル群を.txtファイルなどにコピーしてから(親切にもコピーするとURLの部分だけペーストされます)、cp コマンドで、each_lineなどの一行づつ処理する関数を使って一気に差分をコピーします。

当然ディレクトリ構造もコピーしていきたかったので、Macの場合BSD系になるのでcpコマンドにはディレクトリ構造ごとコピーする機能はついてなく、GNU系のcpコマンドをインストールして、gcpコマンドで実行します。オプションは –parents gcpコマンドのインストールは前記事に載っています。

each_line do |f|

system(“gcp –parents f outputdir”)

end

という具合の簡単なスクリプトです。これで手作業でmargeして変更のあったファイルをチェックして手動でコピーして差分ファイルを作る、という手間から解放されました。

ほか新しく作られたファイル、旧バージョンより削除されたファイルも同じく、削除の場合はrmコマンドに書き換えるだけです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です