UNIXツールの公開

木谷 公哉(KITANI Kimiya)

INDEX
mboxデータを1メール毎の自動転送するツール(2009.08.03)
ツール: mbox_mailforwarding.txt: (MD5: 495c1017c4293f8fc0205df9f08e5e30)
[日本語文字コードはEUC-JPにしてます。適宜なおしてくださって結構です。コメントにしか日本語つかってないので]
メールサーバ管理者などしか使わないと思うので、管理者向け説明にしておきます。
[利用情報の注意]
  1. mbox_mailforwarding.csh などと名称変更し、実行権限を与えておく
  2. 内部の「set ERROR_FORWARDING = "かならずアドレス入れること"」に、管理者メールアドレスを設定しておくこと。
ディスク障害でホームディレクトリがマウントできず、結果として.forwardが読み込めないことに起因するメール転送できなかったユーザ向けの一括転送のために作りました。(2009.08.03)
Pukiwiki/Pukiwiki Plus!のカスタマイズ (2010.06.02更新)
Pukiwiki / Pukiwiki Plus! (1.4.7で確認) をベースに便利なカスタマイズを紹介していきます。
  • 2010.06.02: custom.php.txtを1.3に更新。処理速度をアップ(数秒)
  1. plus-i18n-rev1494より上のバージョン(rev1726で確認)で、AutoAliasNameが使えなくなった
    • lib/make_link.php: [class Link_autoalias extends Link]クラス内の[function toString()]内にある$linkを下記に変更する
      $link = '[[' . $this->name . '>' . $this->aliases[0] . ']]';
      これは、AutoAliasNameで同じ名前が複数使われていたときに、$this->aliases[]に全データが入る。が、それをリンクに変換する処理に反映されていないバグ。暫定対応としては、同名のAutoAliasしたい名前が出てきたら、一番最初のみ反映させることにする。
      参考:Pukiwiki Plus!のBugTrack/145
  2. URLの明瞭化のためにファイル名はASCII文字にしたいが、その情報は日本語で出したい。
    skinフォルダ内にcustom.php.txtをcustom.phpとして保存
    skinフォルダ内にcustom.ini.txtをcustom.iniとして保存
    
     * 2010.06.02: Version 1.3: 
     ** タグの正規表現を修正し、処理速度アップ(数秒速くなる)
    
     * 2007.08.28: Version 1.27:
     ** $bodyに対して、preg_match, preg_replaceを使ってみる(PHP5だと
        mb_eregと対して変わらず、php4の場合には置き換えた方が高速になる可能性
        有り。(結局現状は置き換えず)
    
     ** 定義ファイルによって、本プログラムの無効化を可能にした。
      CUSTOME_ENABLE = 0 or 1: プログラム自体無効
      CUSTOME_MENUBAR_ENABLE = 0 or 1; MenuBarのみプログラム無効
      CUSTOME_SIDEBAR_ENABLE = 0 or 1; SideBarのみプログラム無効
    
      XXXX.skin.phpを下記ように変更すること
     1)MenuBar設定
     (変更前)
       <?php echo $menu; ?>
     (変更後)
       <?php if(defined("CUSTOM_MENUBAR_ENABLE") && CUSTOM_MENUBAR_ENABLE != 0) echo $menu; else echo do_plugin_convert('menu')  ?>
     (オリジナル)
       <?php echo do_plugin_convert('menu')  ?>
     2)SideBar設定
     (変更前)
       <?php echo $side; ?>
     (変更後)
       <?php if(defined("CUSTOM_SIDEBAR_ENABLE") && CUSTOM_SIDEBAR_ENABLE != 0) echo $sid\
    e; else echo do_plugin_convert('side')  ?>
     (オリジナル)
       <?php echo do_plugin_convert('side')  ?>
    * 2007.08.10: Version 1.26:
    ** non-greedyへの対応をやめる。 .*?, .+? → .*, .+。httpdに負担をかけすぎて、開けな\いページが存在したため。
    * 2007.08.10: Version 1.25:
     ** non-greedyへの対応。 .*, .+ → .*?, .+?。これをしないと一部変換されない問題があ\った。
     *** http://www.mnet.ne.jp/~nakama/の「.はどこまで繋がるのか」
     *** http://www.python.jp/Zope/articles/tips/regex_howto/regex_howto_6
    * 2007.07.27: Version 1.24:
     ** 1.21で作成した、階層ページの下位ページ作成のバグ修正。
        optionのvalueの値の最後に「/」が必要だったので追加。
    * 2007.07.27: Version 1.23:
     ** <a>タグの正規表現を変更。<a href="">  キーワード のように>の右に空白があることに対応。
    * 2007.07.20: Version 1.22:
     ** <span class=*>タグを置換対象に追加。
     ** 検索・置換データのサニタイジングを有効にした。
    * 2007.07.20: Version 1.21:
       o regexオプションのモードを一時変更し、変数内に改行があっても検索・置換処理が継続されるように変更。
       o <h>という項目に対応(添付するときに特に必要)
    * 2007.07.19: Version 1.2:
       o 置換パターンを正規表現でより正しく表現
       o 階層ページの下位ページ作成の場合のoptionに対応
    * 2007.06.26: Version 1.1: SideBar (Plus!)に対応。
    * 2007.03.26: Version 1.0: 公開(Pukiwiki, Pukiwiki Plus!用)
    
    これらは好きな文字コードにしてください。現状はEUC-JPで保存されています。
    そしてPukiwiki UTF-8版/Pukiwiki Plus! i18n版 で使えるようにcustom.phpに設定
    しています。EUC-JP版を使うなら、「mb_」から始まるメソッドの文字コードを変更
    すればいいでしょう。
    
    
    
    ==================
    
    pukiwiki.skin.php, default.skin.phpなどのスキンのファイルの先頭に、
    <?php  require_once("custom.php"); ?>
    
    <div id="menubar"><?php echo do_plugin_convert('menu') ?></div> 
    の部分を、
    <div id="menubar"><?php echo $menu ?></div> 
    と変更します。
    
    課題:RSS出力(?rssや?mixirssなどでの表示)は、まだコンバートできるように
          作ってません。
    
    利点:URLがすべてアルファベット表記にできることです。また、Pukiwiki本
          体をバージョンアップしたとしても、この程度の変更であれば負担も少
          ないと思います。
          このプログラムは、データを表示するタイミングで有効になります。
          したがって、データそのものを触りませんので、いつでも無効/有効に
          できます。
    
    無効化:default.skin.php, pukiwiki.skin.phpなど利用しているスキンの先頭
            に加えたrequire_once("custom.php");を削除し、上記メニューバー設
            定を戻す。
    
    
image_for_web (画像サイズ変更ツール): md5(43b82f376496060155f1f5da18915b13)
CSHで作成したウェブのための画像変更ツールです。ImageMagickのconvertコマンドが必要となります。Finkを通じてインストールするのが簡単でしょう。
% image_for_web.csh フォルダ/三桁の数字  画像(*表記おっけー)
で160x120のサムネイルと640x480の画像が出来上がります。
% image_for_web.csh ./images/3  *.jpg
画像が3つあると、./images/以下に, 003-i.jpg, 003.jpg, 004-i.jpg, 004.jpg, 005-i.jpg, 005.jpgのように画像ができます。画像のサイズ変更は、image_for_web.cshのorg_size, icon_sizeを変更するだけです。このソフトは「上書き」保存しません。したがって同名があった場合には、「同名があるという警告」を出して「何も作業せず」終了します。誤って上書きすることを避けるためです。また写真でとると左に90度寝ているようにみえる縦向きの写真の場合には、
% image_for_web.csh ./images/3  *.jpg -r
のように最後に「-r」をつけて下さい。そうすると90度時計回りに回転し、縦写真用となります。自動で縦横なんてものを検知する機能はつけてません。ターミナルをメインにしてウェブ編集やらその他の仕事をする時に重宝しているものです。さらにサイズ変更にもそれぞれオプションつけてます。デジカメなんかの写真の場合、それが全部縦向けだったら
% image_for_web -o 480x640 -i 120x160 image/012 DSC*
とかで12から連番ファイルで一括処理できますし。
transnkf: md5(18344bb25ecb01b3ec190a2838da9fdc)
nkfを一括適応するためのshスクリプトです。でもnkf2.0(UTF-8対応版)になってから、--overwriteオプションが使えるようになりました。これを使うとスクリプトももうちょっと簡単になるでしょうねぇ。
% transnkf -e *.txt
これはすべて「ファイルを上書き」します。なのでバックアップとってからやったほうがいいでしょう。
mailman_getmemberlist(mailmanの会員情報をテキスト化): md5(5f17442444896d766017f03b93971b17)
Mailmanの会員情報のテキスト化するものです。「2.1.5+日本語バッチ」で確認しています。
会員管理の画面を開きます。ソースをコピーして保存したのち、
% mailman_getmemberlist.sh ソース
とすると、ソース_email.txt, ソース_name.txtができます。それぞれメールアドレスリストと名前リストが出るだけです。他に方法があるかもしれませんが、とりあえず簡単にメールアドレス一覧を調べる場合にはこれを使っています。