LoginSignup
1
0

More than 5 years have passed since last update.

好みのエディタで日報を書く仕組み(zsh)

Last updated at Posted at 2018-09-09

前提

  • 以下環境で使うことを前提にしているので誰しも恩恵を受けられる話ではないかも知れない

    • Mac (というか open コマンドに依存した記述になっている)
    • zsh
    • GNU screen
  • 以下は他のソフトウェアであっても十分代替可能なのではないか

    • Typora
    • GNU Core Utilities関連のコマンド

やりたいこと

  • 日報を書きたいよね
  • 毎日自然と、半ば強制的に当該日ファイルが開かれると書き込めるまで腰の重さがなくていいよね
  • アプリ切り替えのショートカットでフォーカスが切り替えられるほうがいいよね
    • ブラウザだとやだよね、ということ

考えたこと

以下を実現することはとても容易い

  • markdownで日報を書きたい
    • 書けば良い
  • 好きなEditorで書きたい(開きたい)
    • 開けば良い(Macには open がある)

使い勝手を考え以下を考慮するとちょっとめんどい

  • 当該日ファイルが存在しないならばファイルを作成する
  • すでに指定エディタで当該日ファイルを編集状態であれば何もしない
  • 当該日ファイルが編集状態でなければ指定エディタでファイルを開く

markdown生成および上記を考慮したやつ

  • 雑なスクリプト(おなじことをそれぞれ別のやり方でやっているように見えるが気にしないで……)
    • ディレクトリ作る
    • ファイル作る
    • 指定エディタでファイルを開いていなければ open で開く
  • なおDropboxの下に作ってるので、あなたがそうでなければ読み替えされたい
${HOME}/Dropbox/paht/to/hoge.sh
#!/bin/bash

function date_or_gdate()
{
  which gdate >/dev/null 2>&1 && echo "gdate" || echo "date"
}

DATE=$(date_or_gdate)
PREFIX="${HOME}/Dropbox/LogDiary"
TODAY_DIR="$(${DATE} \+'%Y/%m')"
TODAY_MARKDOWN="$(${DATE} \+'%Y-%m-%d.md')"
TODAY_TITLE="$(${DATE} \+'%Y/%m/%d')"
MARKDOWN_EDITOR_PROC="Typora"

ls -d ${PREFIX}/${TODAY_DIR} >/dev/null 2>&1
res=${?}
if [ ! "${res}x" = "0x" ]; then
  mkdir -p ${PREFIX}/${TODAY_DIR}
  echo "Genarated Dir."
fi

ls -f ${PREFIX}/${TODAY_DIR}/${TODAY_MARKDOWN} >/dev/null 2>&1
res=${?}
if [ ! "${res}x" = "0x" ]; then
  echo -e "# ${TODAY_TITLE}\n" >> ${PREFIX}/${TODAY_DIR}/${TODAY_MARKDOWN}
  echo "Genarated Markdown."
  open ${PREFIX}/${TODAY_DIR}/${TODAY_MARKDOWN}
fi

pgrep ${MARKDOWN_EDITOR_PROC} >/dev/null 2>&1 || open ${PREFIX}/${TODAY_DIR}/${TODAY_MARKDOWN}
echo ${PREFIX}/${TODAY_DIR}/${TODAY_MARKDOWN}

~/.zshrc にhoge.shを実行するよう記述

~/.zshrc
# LifeLog
genlifelog="${HOME}/Dropbox/path/to/hoge.sh"
bash ${genlifelog}

上記記述を追加することで
screenで新しいWindowを生成するごとに hoge.sh が実行されることになる。
pgrep でprocess状況を確認しているので、すでに編集状態なら何もしないのでうれしい。

と思ったが

:thinking: .oO(これたとえばTyporaで他のファイル編集してたら open 日報ファイル.md しないのでは……)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0