Humanity

Edit the world by your favorite way

現在の状況 メモ

やりたいことが次々と出てきて消化しきれない...
ささっとコードに落とし込む能力があればいいのに...


TODOリスト

  • コマンド
    • *-tag
      • タグを操作するコマンド
    • shell
      • いちいち長いコマンドを打ったり、0.5秒程の初期化処理にイライラせずに済む
    • open
      • 現在の日付の日記ファイルをなければ作成し、$EDITORで開く
      • もっといいコマンド名ないかな...
  • config
    • 設定ファイルを操作するコマンド
    • git-configみたいな感じ

shellとかopen辺りを実装したらaliasとかも実装しようかなと思った。

git config alias.***
だとconfig-hww.txtに書き込まれるけど
git alias ***
だとシェルが立ち上がってる最中だけ有効なエイリアスとか。
まぁそこまで・・・って感じはするけどとりあえずメモしとこう。

あとshell実装したらGnu::ReadLineの補完関数とかコマンドライン用にzsh補完関数とか。
これもそこまで・・・って感じはするけどとりあえず(ry


というかこんな思いつきが出てくるせいでコードがコメントばっかになってる。


lib-hww/HWWrapper.pmの30行目?90行目辺り

# command vs subname
our %HWW_COMMAND = (
    help => 'help',
    version => 'version',
    init => 'init',
    release => 'release',
    update => 'update',
    load => 'load',
    verify => 'verify',
    status => 'status',
    'apply-headline' => 'apply_headline',
    'revert-headline' => 'revert_headline',
    touch => 'touch',
    'gen-html' => 'gen_html',
    'update-index' => 'update_index',
    chain => 'chain',
    diff => 'diff',

    # TODO commands to manipulate tags.
    # 'add-tag' => 'add_tag',
    # 'delete-tag' => 'delete_tag',
    # 'rename-tag' => 'rename_tag',

    # TODO 現在の日記ファイルを作ってエディタで開くコマンド
    # TODO 対話シェルを起動するコマンド
    # shell => 'shell',
    # TODO 設定(ファイルはconfig-hww.txt)を変えるコマンド
    # config => 'config',
);

# TODO
# - コマンドのヘルプドキュメント書く
# - HWのサブルーチンをHatena AtomPub APIを使うように書き換える
# - HWのサブルーチンをHWWrapper::UtilSubやHWWrapper::UtilSub::Functionsで置き換えられる所は置き換える
# - HWのデバッグメッセージを変更
# - バージョンとヘルプにHW.pmのid:hyukiさん達のcopyright入れる
# - オリジナルのhw.plの-tオプションはreleaseやupdateで指定できるのでいらない
# - コマンド名をミスった場合に空気呼んで似てるコマンドを呼び出すか訊く (zshのcorrectみたいに)
# - add attributes to test if $self is blessed and to omit to declare $self?
#
# - $self->target_file (= -fオプションで渡す値)はコマンドの引数で指定させるつもりなのでいらないはず
# - diffやloadがアクセサの値じゃなく引数で受渡しをするようにする
#
# - config-hww.txtにHWWrapperの設定を書く
# -- フォーマットはYAML
# (YAML::XSとYAMLは互換性がないらしい。XSを使うのはWindowsにとって厳しいのでYAMLモジュールを使う)
# -- $EDITORの設定
# -- hww.plに常に付ける引数(.provercや.ctagsみたいな感じ)

# XXX
# - save_diary_draft()がクッキーを使ってログインできてない気がする
# (一回ログインした次が401 Authorizedになる)
# -- それLWP::Authen::Wsse使ってるからじゃ・・・
# -- 違った。はてなのAtomPub APIがcookieでの認証廃止したからだった。
# 受け取ったcookieは即expiredになる。

# NOTE
# - new()で設定のデフォルト値をセットして
# - load_config()で設定ファイルの値をセットして
# - parse_opt()で引数の値をセット
# command vs subname
our %HWW_COMMAND = (
    help => 'help',
    version => 'version',
    init => 'init',
    release => 'release',
    update => 'update',
    load => 'load',
    verify => 'verify',
    status => 'status',
    'apply-headline' => 'apply_headline',
    'revert-headline' => 'revert_headline',
    touch => 'touch',
    'gen-html' => 'gen_html',
    'update-index' => 'update_index',
    chain => 'chain',
    diff => 'diff',

    # TODO commands to manipulate tags.
    # 'add-tag' => 'add_tag',
    # 'delete-tag' => 'delete_tag',
    # 'rename-tag' => 'rename_tag',

    # TODO 現在の日記ファイルを作ってエディタで開くコマンド
    # TODO 対話シェルを起動するコマンド
    # shell => 'shell',
    # TODO 設定(ファイルはconfig-hww.txt)を変えるコマンド
    # config => 'config',
);

# TODO
# - コマンドのヘルプドキュメント書く
# - HWのサブルーチンをHatena AtomPub APIを使うように書き換える
# - HWのサブルーチンをHWWrapper::UtilSubやHWWrapper::UtilSub::Functionsで置き換えられる所は置き換える
# - HWのデバッグメッセージを変更
# - バージョンとヘルプにHW.pmのid:hyukiさん達のcopyright入れる
# - オリジナルのhw.plの-tオプションはreleaseやupdateで指定できるのでいらない
# - コマンド名をミスった場合に空気呼んで似てるコマンドを呼び出すか訊く (zshのcorrectみたいに)
# - add attributes to test if $self is blessed and to omit to declare $self?
#
# - $self->target_file (= -fオプションで渡す値)はコマンドの引数で指定させるつもりなのでいらないはず
# - diffやloadがアクセサの値じゃなく引数で受渡しをするようにする
#
# - config-hww.txtにHWWrapperの設定を書く
# -- フォーマットはYAML
# (YAML::XSとYAMLは互換性がないらしい。XSを使うのはWindowsにとって厳しいのでYAMLモジュールを使う)
# -- $EDITORの設定
# -- hww.plに常に付ける引数(.provercや.ctagsみたいな感じ)

# XXX
# - save_diary_draft()がクッキーを使ってログインできてない気がする
# (一回ログインした次が401 Authorizedになる)
# -- それLWP::Authen::Wsse使ってるからじゃ・・・
# -- 違った。はてなのAtomPub APIがcookieでの認証廃止したからだった。
# 受け取ったcookieは即expiredになる。

# NOTE
# - new()で設定のデフォルト値をセットして
# - load_config()で設定ファイルの値をセットして
# - parse_opt()で引数の値をセット


せめて別ファイルに書けよ・・・orz