FileMakerで作るコード管理と実行ランチャー CodeManager について。このページは使い方、マニュアルです。
ファイルはこちらです。
Mac専用です。あらかじめいくつかのサンプルレコードが入っています。
バージョン:2023-12-22
※ ファイルのリンクが間違っていたのを修正しました💦
CodeRun の使い方
この投稿は結構以前の Macで実行可能なFileMakerコード管理 CodeManager の続きで、ファイルの使い方・マニュアルです。
実は当時すでに書いていたのですが「マニュアルのページなんかいらんやろ」と公開していませんでした。最近、こっそり CodeManager ファイルそのものをバージョンアップして再アップ、関連記事もこっそり更新したので、それに合わせてマニュアルページもこっそり書き直し、せっかくだからとこっそり公開することにしました。公開したことにこっそりもくそないやろと。はい。
もうひとつ理由があって、それは実作編改め「FileMaker メディア管理の作り方」を最近始めたからです。連載的に、ちょうどこの「外部コマンドラインツールをFileMaker内から利用する」という話が挟まるべきタイミングでした。
これは、FileMaker で画像や写真や動画やメディアの管理を作ろうという企画で、基本から育つ過程を逐一報告するシリーズです。
基本の使い方
ダウンロードしたファイルを開くと、いくつかレコードが用意されています。例えば「スクリーンショットの名前」を選んでみます。
真ん中のタイトル下あたり、codeTemp フィールドが主人公のフィールドです。ここにコードやメモを書いていくわけです。細かい説明は後回しにして、右側には名前を入力する欄があります。ここに何か書くと、それがスクリーンショットの名前になります。
薄緑色に囲まれたところがレコードに依存しない実行用の部分です。
IDの横に→ボタンがありますが、これは更新ボタンも兼ねています。一応、これを押してから「実行」ボタンをクリックします。
一瞬の出来事ですが、スクリーンショットの名前が変更されました。試しにスクリーンショットを撮ってみてください。
結果が返るコード
サンプルレコードに「ファイルかフォルダかを調べる」がありますので見てください。
codeTemp には、指定したパスがフォルダかファイルかを調べるコードが書かれていて最後は pbcopy です。つまり結果がクリップボードに入ります。
file -b $POSIX1 | pbcopy
CodeRun は pbcopy に対応しています。クリップボードに結果が返るコードの場合は「結果フィールド」に最後ペーストされます。
右側の POSIX1 に適当なファイルかフォルダのパスを入れて、矢印ボタンクリックしてから実行ボタンクリックしてみてください。結果が「Directory」ならフォルダ、「cannot open」で始まるならパスのエラー、それ以外はファイルということになります。
ということで、pbcopy を入れた場合は、結果フィールドに結果が返るところまで面倒を見ます。
以上が基本の使い方です。大体これでOKで、これ以降は読む必要ありませんが、もう少し詳しく知りたい方のために記します。
新規、複製、削除
ショートカットやメニューから操作してもいいですが、ボタンを用意しています。ボタンで操作すると、シリアルナンバーの連番が調整されます(最大番号の次の値がIDになる)
新規レコードが出来たのでタイトルを入れ、メインの codeTemp フィールドにメモやコードを書きます。メモの場合はタイトルに「メモ」とか「memo」とか入れるとカテゴリーの計算上都合良いです。
codeTemp への入力
コードの入力では、パスやパラメータを仮置きの変数に置き換えておきます。それは決まった文言で、例外はなしです。
大事なのは $POSIX1と$POSIX2です。パスを指定するときは必ずこれを使います。あとは特にルールはないです。
codeTemp フィールドにコードを書けば、あとはせいぜい、説明を書いたり、タグ欄に検索しやすい言葉を追加して完了です。カテゴリーは自動で分類されます。
パラメータの値
コードを実行させるなら、パラメータの実際の値が必要です。codeTemp 内に変数名があれば、値を書いておくポータルが右側に出現しますので、埋めていきます。
コアと多機能
さて、変数をパラメータの値で置き換えることで完成コードが作成され、あとは実行するだけです。パラメータの値は、codeRunテーブルの「param_XX」(XXは変数名と同じPOSIX1とかTEXT1)というフィールドに格納されます。
実際の話、コアな機能で言えば、このパラメータフィールドに記入すればそれで目的は達成です。スライドの後ろに隠れていますが、これです。
実際、CodeManager ファイルに CodeRun mini という余所にコピペしやすいシンプルレイアウトが用意されていて、そちらはこの生のフィールドだけを配置しています。
ここからは、妙な多機能ポータルについての説明になります。CodeRun レイアウト上ではここからが凝り凝りポイントになってます。具体的に何かというと、こうです。
- 変数名のタイプと説明を記録しておける
- value フィールドに入力したテキストをlogに保存する
- log に保存された value がタイプ別ポップアップになって再度選択できる
これらはパラメータのポータルが担っています。本筋ではないオマケ機能と言えばそうですが。
パラメータのタイプと説明
コード内で使用する変数名ごとに、その変数のタイプ(パス, 名前, 時間など)と、説明を入力しておけます。
例えば $NUM1 に「タイムスタンプ」が入り、その書式は「mm/dd/yyyy HH:MM:SS」であるよ。という具合です。ただ変数を置いただけではそこに何を値として入れればいいのか分からなくなったりしますから。タイプを定め、説明を入れておくことでコード管理としてより良いものとなります。なるかもしれません。多分。
さて、実際の値はvalueフィールドに書きます。パスなら、選択ボタンからダイアログを呼び出して入力もできます。
Log とポップアップ
value に書いた内容は log に保存されます。log を開くと「調整」てのがあって、これは log に保存するレコード数を調整します。
logの目的
log が何のためにあるかというと、log 目的というより、値一覧を作るためです。Type 別に分類され、ポータルのポップアップに登場して再入力が容易く出来ます。この機能がどの程度有能なのか、必要ないのか、それはよくわかりません。
以上が、右側のパラメータポータルの説明でした。
書き出しとインポート
書き出しができてインポートもできます。レコードのみか、対象レコードすべてか、書き出し先は任意のフォルダかテンポラリかを選べます。また、ID を含めるかどうかも選べます。選び方は、ちょっとダルいけどダイアログです。
テンポラリは、FileMaker起動中のみ生きている仮フォルダみたいなものです。終了すると消えます。書き出してすぐ読み込むという流れの場合、いちいちファイル化するより手っ取り早いです。
個人的に、CodeRun mini を複数他のファイルに仕込んだり、CodeManager を複数使ったりしてしまうこともあったので、テンポラリを使ってさくさくやりとりしたり、ID を含めずに真新しいファイルに作り直したりする機能が必要でした。
フィルタ
検索窓と、カテゴリー、コマンド、タグのポップアップによるフィルタです。
検索窓はクイック検索を行い、下段のフィルタを無視して検索します。下段は検索窓を含めて全てのフィルタ項目を絞り込みます。
カテゴリーは自動で分類されます。コマンドも概ね自動で分類されますが手動でもイケます。タグは完全に手動で、お好みでタグを付けておくと絞り込みに便利かもしれません。
レコードが少ないうちはどうでもいい機能ですが、ごちゃごちゃ増えてきたり、同じコマンドのオプション違いを複数登録し始めるとフィルタ機能が必須になってきます。
いくつかの計算結果フィールド
codeTemp にコードを書くと、その下の段にて計算結果が表示されます。
codeFinal は最終形態。実行ボタンでこれが実行されます。それ以外に、次のような計算結果があります。他所で使うときなどにコピペすると便利かもしれません。
temp doScript
codeTemp の内容を do shell script の形に置き換えた計算結果。カテゴリーが「Command」で有効です。テンプレのまま変換されており、他のFMファイルに流用する際、持って行きやすい形です。
temp calcFormula
codeTemp の内容を計算式で使えるテキストに整形した計算結果。ダブルクォートのエスケープ処理などを施したもの。他で流用する際、計算式の中に書き込める書式です。
Substitute
これは coeTemp の変数を実際の値に置き換えただけの計算式です。テンプレに書いたコードそのままです。これはつまり、CodeRun から実行できませんが、コピーしてターミナルやスクリプトエディタに直接ペーストして使う形です。
CodeReference
別途オマケテーブルに commandReference を作っています。これは、コマンドの単語帳みたいなもので、コマンドとそのオプションをメモっておくためのテーブルです。
初心者学習用の覚え書きですね。はい。超初心者の筆者にとってこれは最初役に立ちました。
このテーブルは CodeRun ともリレーションされていて、レコードで使用した関連コマンドをすぐに参照できます。
オマケテーブルのさらにオマケで、テストを作ったりできます。
オプションを加えたりするテストなわけですが大したものじゃないです。
ということで、Macで実行可能なFileMakerコード管理、使い方マニュアルでした。
このシリーズのリンクを置いておきます。
- Macで実行もできるFileMakerコード管理
- Macで実行可能なFileMakerコード管理 CodeManager
- Macで実行可能なFileMakerコード管理 CodeManager その2 コマンドラインを do shell script に変換
- Macで実行可能なFileMakerコード管理 CodeManager その3 実行するスクリプト
- CodeManager 使い方。マニュアル(このページ)