2008.9.17 Wed. まずは、user nameなどを別ファイルにする。 2008.9.18 Fri. anonymousとしてログインできるようにする。 パスワードの入力をもっと互換性を持たせる。 また、****とかを表示するようにしようか。 TODO [*] 1. 好きなエディタを選べるようにする。 2008.9.22 Mon. 上記パスワード入力については解決。 上記TODOについてやる前にコードを整理する。 その前にcabalを書いちゃおうか。 2008.9.24 Wed. viでもし変更がなかったらアップロードしないようにしたい。 できるかな。 ひとつの方法としては2つの一時ファイルを使うという手があるけれど、 どうだろうか、あまり美しくはないが、ほかに思いつかなければそうすることにしよう。 * bug たとえば、get foo/index.xhtmlとした場合、その後のコマンドがすべてエラーになる。 おそらく、エラーのときにバッファを空にするなどで対応可能であると思われる。 ftphsへの修正が必要になるかもしれない。 TODO [ ] script実行できるようにする。 cabal化の途中。 2008.9.25 Thr. viとかviewとかで'/'を'_'あたりに変えようか。 そうすればディレクトリ名を含めたファイルの編集などができる。 あるいはbasenameだけ使用するか。 後者のほうがいいかもしれない。 BUG [*] password入力でbackspaceを使えるようにしなくてはいけない。 次はebuildの作成。 backspaceを使えるようにするのだが、cursesを使うのはすこし大袈裟な気もするし。 どうしようか。 '\b'の出力でうまくいった。そらそうだ。 hackageに登録する前にTODO 1をしておく必要があるだろう。 xmonadあたりを参考にしようか。 xmonad的なやりかたを試すためのプロジェクトを作成しようか。 2008.9.27 Sat. 上記プロジェクト作成した。 TODO [*] ディレクトリを指定できるようにする。 次は--versionでバージョンを表示するようにしよう。 2008.9.29 Mon. yjftp put [filepath] [server][directory] [user] でファイルをアップデートできるようにした。 次はgetあたりを実装しよう。 ライセンスはGPLとBSDのデュアルライセンスにするべきかもしれない。 2008.9.30 Tue. update_portageは独立させようかな。そのうちに。 いまのところはコピーして使っとこう。 TODO [*] password入力をミスったときに3回までは繰り返すようにしようか。 2008.10.1 Wed. TODO [ ] yjftp update でユーザーのプログラムをバックアップしたうえで新しい、 yjftp.hsをいれるようにしようか。 その場合、yjftp.hs に変化がない場合には何もせず、 変化があったときには yjftp.hs.bak にでも退避させることにしよう。 yjftp.hs にバージョンを記載しておくことで不必要な update をしないようにしようか。 これらはもしかすると hsConfigure で面倒みることかもしれない。 [ ] command line について。 histry を使えるようにしようか。 [Tab] による補完はどうするか。 2008.10.3 Fri. TODO [ ] open, close コマンドを実装しようか。 [ ] ユーザーの実行ファイルを update することを考えるべきかもしれない。 次にするべきことは password 入力について。 2008.10.4 Sat. TODO [*] -p でパスワードをコマンドラインから指定できるようにする。 .lhs じゃなくて .hs にしようかな。 exit とかのコマンドでスペースを許すようにする。 そろそろリファクタリングするころかもしれない。 getLineP を bracket を使うようにするとか。 あと exit などに空白を許すとかもコードをきれいにしていくなかで対応すべきことかもしれない。 TODO [ ] [tab]による補完は configurable にする必要がある。 なぜならコマンドを configurable にしてあるのだから。 2008.10.5 Sun. ファイルに Copyright をつけよう。 cp で起きるエラーは ftphs のほうもなんとかしなくちゃいけないし...。 2008.10.9 Thr. try より catch を使ったほうがきれいかもしれない。 2008.10.10 Fri. edit, show を環境変数を参照するようにした。 TODO [ ] Network/Yjftp.hs の cleaning 後半 [ ] '?' をなんとかする ? を実装するためだけに CommandList をいじるのも、う〜んって感じだし。 2008.10.11 Sat. yjftp.hs は自動生成にするべきだろう。 2008.10.14 Tue. mkyjftp_hs.lhs ファイルを作成。 これは、Network/CommandList.hs の defaultCommandList を読み取り、 yjftp.hs にmyCommandList として書き込むという機能を持つ。 また、yjftp.hs と Network/CommandList.hs の修正日時を比較して、 アップデートが必要かどうかもチェックする。 2008.10.15 Wed. myWords は '!' だけを特別視して、それ以外は普通に words と同じでいいのかもしれない。 '?' を実装するために CommandList を [ (a, (b, String) ] という形にするか。 readline を使うか 2008.10.16 Thr. readline を使ってみた。 次は、補完で remote のファイルが補完できるようにしたいのだが。 補完についてはあとにして、とりあえず '?' を実装した。 次は remote の補完でディレクトリをまたいでいけるようにしたい。 上記、完了。 2009.6.13 Sat. 補完で readline だとか editline だとか。 もう、めんどくさいから haskeline を使おうかと思う。 そのために、 まずは wrapper である程度の抽象化をしておいたほうがいいかもしれない。 思ったより大変。 InputT IO とか、それと catch をどうなじませようか、とか。