メインコンテンツまでスキップ

振る舞いを変えるには

v0.0.0〜

詳しい人向けの解説です。

どういうことができるの?

tofssは実のところ 「指定ディレクトリ内のファイル名を正規表現allowして正規表現denyしたファイルリストを対象に、mtimeを日時書式化したファイル名タイトルにリネームする」 ツールです。 プログラム引数(argument)環境変数設定ファイルの3つで振る舞いを変えることができます。

これにより、仕様変更や別のゲームの画像ファイルなどに応用できます。

リネームディレクトリの指定

tofssで実行すると、argumentを強制的に.で実行します。つまり常にカレントディレクトリだけです。

tofss.jarjavaコマンドで起動するとargument指定ができます。 引数を指定すると、それらをすべて「リネームするディレクトリへのパス」と認識します。 引数なしで実行するとUsageメッセージを表示します。

環境変数TOFSS_ALLOWと設定ファイル.tofss/allow.txt

リネーム対象として拾うファイル名の正規表現パターン記述として扱います。

  1. デフォルトは^\d{5}\.png$
  2. 環境変数TOFSS_ALLOW
  3. リネームディレクトリの.tofss/allow.txt(最初の1行だけ有効)

この順で設定するので、allow.txtが一番優先度が高いです。 JAVA仕様の正規表現パターン記述です。

ぶっちゃけどう書けば?

AIに「JAVA言語の正規表現にパターンマッチする記述を教えてください。次の文字列を入力します:...」って聞けば教えてくれます。 JAVA言語固有の箇所も考慮してくれますが、コード内記述、つまり正規表現エスケープをコード記述文字列用エスケープ処理している記述で答えてきたら、コード記述のエスケープを外した記述にしてください。

環境変数TOFSS_DENYと設定ファイル.tofss/deny.txt

allowの拒否パターンです。 優先順位はallowと同じです。 デフォルトは\d{8}\+\d{6}で、すでに1回リネーム実行したっぽいファイル名は除外しています。 allowで拾われることはないので蛇足ですが「絶対にマッチしない条件を書くのもなんかアレだなあ」と思ってこれに設定しました。

環境変数TOFSS_TITLEと設定ファイル.tofss/title.txt

ファイル名のタイトル部分の日時パターンを変更できます。 具体的にはDateTimeFormatter.ofPattern(String)に与えるパターンテキストを指定することができます。 優先順位はallowなどと同等です。 デフォルトはyyyyMMdd+HHmmssですが、'tof@'yyyyMMdd+HHmmssなんて指定もできます。 細かいところはAIさんに聞いてください。