CLでローカルに立てたWebサーバーの更新は出来たけど、会社のブログはリモート。そこに接続して更新する方法を覚える必要がある。

AllegroServeを立てて、ブログ用のマクロや関数を書いてくれたg000001さんにやり方を聞こうかなと思ったらSkypeにいない!!

これは「教わろうとするな、盗め!」ということに違いない。厳しス。

ssh port forwarding

とりあえず、ブログのサーバーに入って何番でSWANKサーバーが立ち上がってるのか知る必要がある。

netstat -tlnで見てみた。

Redmineと同居してるのでApacheもあるけど(仕方ないね・・・)、8888番がAllegroServeで、多分4005番ってのがSWANKだろう。

4005番を開け放つ訳にはいかないのでローカルの14005番をリモートの4005番にsshでforwardする。

% ssh -N -f -L 14005:localhost:4005 tech.actindi.net

(-fはバックグランド実行、-Nはトンネリングだけするオプションだそうです。)

リモートのSWANKサーバーに接続

EmacsからM-x slime-connectするとhostとportを聞かれるのでlocalhost, 14005をそれぞれ入力すると、

; SLIME 2008-12-25
ACTINDI>

というプロンプトが。

エントリーを評価する

g000001さんがブログエントリー用の関数をたしか書いてたはず。homeディレクトリにblog.lispというそれっぽいファイルがありました。

(in-package :actindi)

(let ((date (encode-universal-time 0 0 0 21 2 2009)))
  (defentry (format nil "/~A" date)
      (:title "ブログはじめました" 
              :author "komagata" 
              :date date
              :category "システム管理")
    "本文"))

in-packageというのは確か実践CommonLispに出て来た。多分import的な奴だと思う。:actindiパッケージにdefentryという関数が定義されてるんだろう。本文はhtml-generatorと同じ記法かな?

適当なバッファで始めてのエントリーを書いて、C-M-xで評価。

アクトインディ技術部隊報告書

アクトインディ技術部隊報告書

出来た!

後でもっとスマートなやり方を聞こう・・・。

参照:

Comments


Option