@kyanny's blog

My thoughts, my life. Views/opinions are my own.

today() を emacs lisp で書き直した

最近 Gauche の勉強をしている - 刺身☆ブーメランのはてなダイアリー でかいたシェル関数の today() を eshell の中でも使いたくなったので emacs lisp 関数として書き直してみた。

;; today - 今日の日付のディレクトリに移動 なければ作成
(defun today ()
  (interactive)
  (let ((today (concat (getenv "HOME") "/" "daily" "/" (format-time-string "%Y-%m-%d" (current-time)))))
    (if (file-exists-p today)
        (cd today)
      (progn 
        (make-directory today)
        (cd today)))))

concat のあたりがなんとも汚らしい。 join- で始まる文字列連結関数があるんじゃないかと思って C-h f してみたけど候補にそれっぽいのがでてこなかった。 file-exists-p でディレクトリの有無もチェックできる。 directory-exists-p って関数はなかった。