/home/を~に置き換える関数

30分プログラム、その429。ホームディレクトリを~に置き換える関数。
screenのステータスバーにパスを表示するようにしているんだけれども、フルパスをそのまま表示してしまうと見づらい。
というわけで、パスを見やすくするために、ホームディレクトリを~に置換する関数を書いてみた。ホントは、中間部分を省略する関数も書こうと思ったんだけれども時間切れ。

使い方

gosh> (shrink-path "/Users/mzp/hoge")
"~/hoge"

;; /が2つ続いても大丈夫
gosh> (shrink-path "//Users/mzp/hoge")
"~/hoge"
gosh> 

ソースコード

#! /opt/local/bin/gosh
;; -*- mode:scheme; coding:utf-8 -*-

(use file.util)

(define (shrink-path path)
  (regexp-replace
   (string->regexp #`"^,(sys-getenv \"HOME\")")
   (simplify-path path) "~"))