SoM的なもの

UNIX上でコマンドを実行することにより、Windows上でファイルを開いたりブラウザでURLにアクセスしたりできるSoWというツールがあります。

最近はWindowsマシンがなくなって、LinuxMacを使っているので、似たような機能を持つsomという名のシェル関数を作って使っていたのですが、

Macのターミナルから便利な感じにsambaのボリュームとかをマウントできるコマンドを作った

Macで便利に使えるマウントコマンド作った - hitode909の日記

というエントリを見て、オッと思ったのでsomをちょっと作り直しました。

こんなシェル関数です。

# export SOM_SRC_URL=smb://goa/hirose31
# export SOM_SRC_DIR=/home/hirose31
# export SOM_MAC_DIR=/Volumes/hirose31
# export SOM_MAC_HOST=coupe
som() {
  obj= # file, dir, URL
  if [ $# -eq 0 ]; then
    obj=. # open current dir
  else
    obj="$1"
  fi
  if [ -e "$obj" -o -d "$obj" ]; then
    cmd="~/bin/fmount ${SOM_SRC_URL} && open $(readlink -f ${obj} | sed -e "s@${SOM_SRC_DIR}@${SOM_MAC_DIR}@")"
  elif [[ "$obj" =~ ^http:// ]]; then
    cmd="open $obj"
  else
    echo "unknown object: $obj" 1>&2
    return 1
  fi

  echo $cmd
  ssh $SOM_MAC_HOST "$cmd"
}

~/bin/fmountは先のid:hitode909さんのエントリのをシェルスクリプトにしたもの。
変数 SOM_* はお使いの環境にあわせてセットしてください。試してませんが、Netatalkんときはafp://にすればいけると思います。

これで、Linuxのターミナルで

  • som work/gyoza-no-yakikata.pdf を実行するとMacでファイルを開く
  • som work/ を実行するとFinderでそのディレクトリを開く
  • som http://www.irori.org を実行するとブラウザでそのURLにアクセス

します。

メールはLinuxWanderlustで読んでいるんで、添付ファイルを開くときとかに諜報してます。

Enjoy!