Linux

Makefileで日付を取得して、日付付きファイルの作成を自動化する

今回は、Makefileでファイルを作成するときに、日付を自動で入力する方法についてまとめます。

僕は主にセキュリティ関連のトピックに関して、このブログとは別にこちらのブログを更新してます。

このブログ、かえるのひみつきちは、静的サイトジェネレータのhexoを使用しており、記事の作成や管理はすべてGithubで行っています。

そのため、新しい記事を作成するときも、いちいちマークダウンファイルを生成する必要があるので、これを自動化することにしました。
ファイル生成の自動化は、Makefileにやらせています。

そこで今回は、Makefileを使って日付を取得し、それを作成するファイルのファイル名に適用するTipsをまとめます。

Makefileと使い方

まず、Makefileに以下の記述を追加します。

SHELL=/bin/bash

p :=
today = ${shell date '+%Y_%m_%d'}
new_post: ## Create new post
    cp ./md_templates/template.md ./source/_posts/${today}_${p}.md

ここでのポイントは、todayの行で日付をフォーマット付きで取得している点です。
これで、todayには、「年_月_日」という形で日付が格納されます。

日付の取得とフォーマットは、こちらの記事を参照しました。

日付を取得する | UNIX & Linux コマンド・シェルスクリプト リファレンス

そして、new_postコマンドが実行されると、引数で受取ったファイル名と日付を用いて、あらかじめ用意されたテンプレートファイルからブログ記事用のファイルを作成しています。

実際の使い方は以下のコマンドを実行するだけです。

make new_post p=this_is_newfile

まとめ

これでMakefileで日付を取得してブログ記事用のファイルをスムーズに作成できるようになりました。

日々のこまごまとした手間をサクッと自動化していくのは楽しいですね。

COMMENT

メールアドレスが公開されることはありません。