ひとつ別の話題を挟みましたが、第3回のhugo関連スクリプト記事の予告どおり、今回は、その他たまに使うスクリプトと hugo環境のメンテナンスをおこなうためのスクリプトをご紹介します。
今回のスクリプト
#!/bin/bash
# 環境変数:hugoの作業ディレクトリ
readonly HUGO_DIR="/mnt/c/《自分なりのPath》"
# 環境変数:同期に使用する.htaccessファイル
readonly HTACCESS_NAME="20180612.htaccess"
if cd "$HUGO_DIR"; then
  :
else
  echo "存在しないディレクトリがhugoの作業ディレクトリに指定されています。"
  exit
fi
echo -n "hugoの作業
  1. シンク(.htaccess)
  2. メンテナンスメニュー
  3. キャンセル
選択(1-3):"
read -r choice_to_do
case $choice_to_do in
  [1]* )
    rsync -avz --update --chmod=0604 ${HUGO_DIR}/htaccess/${HTACCESS_NAME} {ユーザ名}@{サーバアドレス}:{ホストのディレクトリ}.htaccess
  ;;
  [2]* )
    echo -n "
    メンテナンスメニュー
      a. WSL環境のアップデート
      b. hugoのインストール
      c. キャンセル
    選択(a-c):"
    read -r select_method
    case $select_method in
      [aA]* )
        sudo apt update
        sudo apt upgrade
      ;;</br>[bB]* )
        echo -n "ダウンロードするhugoのバージョンを入力
        参考URL:https://github.com/gohugoio/hugo/releases
        0.xx.x 形式で入力:"
        read -r hugo_version
        wget "https://github.com/gohugoio/hugo/releases/download/v${hugo_version}/hugo_${hugo_version}_Linux-64bit.deb"
        sudo dpkg -i hugo*.deb
        rm hugo*.deb
      ;;</br>[cC]* )
        exit
      ;;
    esac
  ;;
  [3]* )
    exit
  ;;
esac.htaccessファイルの同期
基本的にいじることが少ないのと、他のファイルとパーミッションが異なるので、別に管理しています。基本的な書き方は、前回説明したとおり。今回の場合 --delete と --exclude=オプションを外し、パーミッションを604に指定、フォルダではなくファイルを指定して同期させてます。
rsync -avz --update --chmod=0604 ${HUGO_DIR}/htaccess/${HTACCESS_NAME} {ユーザ名}@{サーバアドレス}:{ホストのディレクトリ}.htaccessメンテナンスメニュー
メンテナンスメニューでは、WSL環境のアップデートと hugoのインストールを実行できるようにしています。
WSL環境のアップデートは、普通にWSL環境の更新です。
hugoのインストールについては、バージョンごとの機能の違いを確認することがあるので、結構使います。バージョンを指定して、ファイルをダウンロード、インストールしたら、ファイルを削除、という流れです。
次回は、ここまで4回に分けて紹介してきたスクリプトをまとめて、ひとつのスクリプトにしたものを紹介します。手抜き総集編みたいなもんです。
 

 
    
コメント
コメントなどありましたら、GitHubのディスカッションへお願いします。(書き込みには、GitHubのアカウントが必要です)