Mono Works

チラシのすきま

hugoメンテナンスメニュー(hugo関連スクリプト 第4回)

ひとつ別の話題を挟みましたが、第3回のhugo関連スクリプト記事の予告どおり、今回は、その他たまに使うスクリプトと hugo環境のメンテナンスをおこなうためのスクリプトをご紹介します。

201807isogiyoshi04 烏賊刺しのゲソ部分をゲソ焼きに

今回のスクリプト

#!/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のアカウントが必要です)
Googleブログ検索
Amazon検索
執筆者
"ぽぽろんち" @pporoch
pporoch120
Mono Worksの中の人。DQX内では "ぬここ" の中の人もやってます。好きなことをつらつらと書き留めてます。
"DQX@ぬここ(UD487-754)"
採用案内
// JS遅延読込み (function(window, document) { function main() { // GoogleAdSense読込み var ad = document.createElement('script'); ad.type = 'text/javascript'; ad.async = true; // 新コードの場合、サイト運営者IDを書き換えてコメントアウトを外す // 旧コードの場合、コメントアウトしたままにする //ad.dataset.adClient = 'ca-pub-XXXXXXXXXXXXXXXX'; ad.src = 'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js'; var sc = document.getElementsByTagName('script')[0]; sc.parentNode.insertBefore(ad, sc); } // 遅延読込み var lazyLoad = false; function onLazyLoad() { if (lazyLoad === false) { // 複数呼び出し回避 + イベント解除 lazyLoad = true; window.removeEventListener('scroll', onLazyLoad); window.removeEventListener('mousemove', onLazyLoad); window.removeEventListener('mousedown', onLazyLoad); window.removeEventListener('touchstart', onLazyLoad); window.removeEventListener('keydown', onLazyLoad); main(); } } window.addEventListener('scroll', onLazyLoad); window.addEventListener('mousemove', onLazyLoad); window.addEventListener('mousedown', onLazyLoad); window.addEventListener('touchstart', onLazyLoad); window.addEventListener('keydown', onLazyLoad); window.addEventListener('load', function() { // ドキュメント途中(更新時 or ページ内リンク) if (window.pageYOffset) { onLazyLoad(); } }); })(window, document);