Macで実行可能なFileMakerコード管理 CodeManager 使い方

FileMakerで作るコード管理と実行ランチャー CodeManager について。このページは使い方、マニュアルです。

ファイルはこちらです。


Download CodeManager_v3.zip

Mac専用です。あらかじめいくつかのサンプルレコードが入っています。
バージョン:2023-05-12

※ ファイルのリンクが間違っていたのを修正しました💦

CodeRun の使い方

 

このページについて

この投稿は結構以前の Macで実行可能なFileMakerコード管理 CodeManager の続きで、ファイルの使い方・マニュアルです。

実は当時すでに書いていたのですが「マニュアルのページなんかいらんやろ」と公開していませんでした。最近、こっそり CodeManager ファイルそのものをバージョンアップして再アップ、関連記事もこっそり更新したので、それに合わせてマニュアルページもこっそり書き直し、せっかくだからとこっそり公開することにしました。公開したことにこっそりもくそないやろと。はい。

もうひとつ理由があって、それは実作編改め「FileMaker メディア管理の作り方」を最近始めたからです。連載的に、ちょうどこの「外部コマンドラインツールをFileMaker内から利用する」という話が挟まるべきタイミングでした。

 FM MediaDB INDEX

これは、FileMaker で画像や写真や動画やメディアの管理を作ろうという企画で、基本から育つ過程を逐一報告するシリーズです。

 

 

基本の使い方

ダウンロードしたファイルを開くと、いくつかレコードが用意されています。例えば「スクリーンショットの名前」を選んでみます。

CodeRun overview
CodeRun

真ん中のタイトル下あたり、codeTemp フィールドが主人公のフィールドです。ここにコードやメモを書いていくわけです。細かい説明は後回しにして、右側には名前を入力する欄があります。ここに何か書くと、それがスクリーンショットの名前になります。

全体図(説明付き)

薄緑色に囲まれたところがレコードに依存しない実行用の部分です。

コード実行を受け持つ部分

IDの横に→ボタンがありますが、これは更新ボタンも兼ねています。一応、これを押してから「実行」ボタンをクリックします。

一瞬の出来事ですが、スクリーンショットの名前が変更されました。試しにスクリーンショットを撮ってみてください。

結果が返るコード

サンプルレコードに「ファイルかフォルダかを調べる」がありますので見てください。

codeTemp には、指定したパスがフォルダかファイルかを調べるコードが書かれていて最後は pbcopy です。つまり結果がクリップボードに入ります。

file -b $POSIX1 | pbcopy

CodeRun は pbcopy に対応しています。クリップボードに結果が返るコードの場合は「結果フィールド」に最後ペーストされます。

右側の POSIX1 に適当なファイルかフォルダのパスを入れて、矢印ボタンクリックしてから実行ボタンクリックしてみてください。結果が「Directory」ならフォルダ、「cannot open」で始まるならパスのエラー、それ以外はファイルということになります。

ということで、pbcopy を入れた場合は、結果フィールドに結果が返るところまで面倒を見ます。

以上が基本の使い方です。大体これでOKで、これ以降は読む必要ありませんが、もう少し詳しく知りたい方のために記します。

新規、複製、削除

ショートカットやメニューから操作してもいいですが、ボタンを用意しています。ボタンで操作すると、シリアルナンバーの連番が調整されます(最大番号の次の値がIDになる)

新規・複製・削除ボタン

新規レコードが出来たのでタイトルを入れ、メインの codeTemp フィールドにメモやコードを書きます。メモの場合はタイトルに「メモ」とか「memo」とか入れるとカテゴリーの計算上都合良いです。

全体画面 タイトル、コード、説明欄を強調表示

codeTemp への入力

コードの入力では、パスやパラメータを仮置きの変数に置き換えておきます。それは決まった文言で、例外はなしです。

変数の入力補助画面

大事なのは $POSIX1と$POSIX2です。パスを指定するときは必ずこれを使います。あとは特にルールはないです。

codeTemp フィールドにコードを書けば、あとはせいぜい、説明を書いたり、タグ欄に検索しやすい言葉を追加して完了です。カテゴリーは自動で分類されます。

パラメータの値

コードを実行させるなら、パラメータの実際の値が必要です。codeTemp 内に変数名があれば、値を書いておくポータルが右側に出現しますので、埋めていきます。

パラメータ用ポータル
codeTemp で使用した変数名の入力欄が現れます

コアと多機能

さて、変数をパラメータの値で置き換えることで完成コードが作成され、あとは実行するだけです。パラメータの値は、codeRunテーブルの「param_XX」(XXは変数名と同じPOSIX1とかTEXT1)というフィールドに格納されます。

実際の話、コアな機能で言えば、このパラメータフィールドに記入すればそれで目的は達成です。スライドの後ろに隠れていますが、これです。

生のパラメータフィールド
生のパラメータフィールド

実際、CodeManager ファイルに CodeRun mini という余所にコピペしやすいシンプルレイアウトが用意されていて、そちらはこの生のフィールドだけを配置しています。

ここからは、妙な多機能ポータルについての説明になります。CodeRun レイアウト上ではここからが凝り凝りポイントになってます。具体的に何かというと、こうです。

  • 変数名のタイプと説明を記録しておける
  • value フィールドに入力したテキストをlogに保存する
  • log に保存された value がタイプ別ポップアップになって再度選択できる

これらはパラメータのポータルが担っています。本筋ではないオマケ機能と言えばそうですが。

パラメータのタイプと説明

コード内で使用する変数名ごとに、その変数のタイプ(パス, 名前, 時間など)と、説明を入力しておけます。

例えば $NUM1 に「タイムスタンプ」が入り、その書式は「mm/dd/yyyy HH:MM:SS」であるよ。という具合です。ただ変数を置いただけではそこに何を値として入れればいいのか分からなくなったりしますから。タイプを定め、説明を入れておくことでコード管理としてより良いものとなります。なるかもしれません。多分。

codeTemp とパラメータの値入力欄
変数について、タイプを決め、説明を加えておくことで、コードについての詳細な覚え書きとなります

さて、実際の値はvalueフィールドに書きます。パスなら、選択ボタンからダイアログを呼び出して入力もできます。

フォルダ、ファイル選択ボタン
POSIXの場合は選択ボタンが現れます

Log とポップアップ

value に書いた内容は log に保存されます。log を開くと「調整」てのがあって、これは log に保存するレコード数を調整します。

log テーブル
log マックス数を設定するとそれを上限にレコード数を調整する

logの目的

log が何のためにあるかというと、log 目的というより、値一覧を作るためです。Type 別に分類され、ポータルのポップアップに登場して再入力が容易く出来ます。この機能がどの程度有能なのか、必要ないのか、それはよくわかりません。

ポップアップ入力
履歴にあればポップアップで再入力

 

以上が、右側のパラメータポータルの説明でした。

書き出しとインポート

import,export button

書き出しができてインポートもできます。レコードのみか、対象レコードすべてか、書き出し先は任意のフォルダかテンポラリかを選べます。また、ID を含めるかどうかも選べます。選び方は、ちょっとダルいけどダイアログです。

テンポラリは、FileMaker起動中のみ生きている仮フォルダみたいなものです。終了すると消えます。書き出してすぐ読み込むという流れの場合、いちいちファイル化するより手っ取り早いです。

個人的に、CodeRun mini を複数他のファイルに仕込んだり、CodeManager を複数使ったりしてしまうこともあったので、テンポラリを使ってさくさくやりとりしたり、ID を含めずに真新しいファイルに作り直したりする機能が必要でした。

フィルタ

検索窓と、カテゴリー、コマンド、タグのポップアップによるフィルタです。

検索窓はクイック検索を行い、下段のフィルタを無視して検索します。下段は検索窓を含めて全てのフィルタ項目を絞り込みます。

カテゴリーは自動で分類されます。コマンドも概ね自動で分類されますが手動でもイケます。タグは完全に手動で、お好みでタグを付けておくと絞り込みに便利かもしれません。

レコードが少ないうちはどうでもいい機能ですが、ごちゃごちゃ増えてきたり、同じコマンドのオプション違いを複数登録し始めるとフィルタ機能が必須になってきます。

いくつかの計算結果フィールド

codeTemp にコードを書くと、その下の段にて計算結果が表示されます。

フィールド: codeFinal
codeFinal

codeFinal は最終形態。実行ボタンでこれが実行されます。それ以外に、次のような計算結果があります。他所で使うときなどにコピペすると便利かもしれません。

temp doScript

フィールド: temp doScript
temp doScript

codeTemp の内容を do shell script の形に置き換えた計算結果。カテゴリーが「Command」で有効です。テンプレのまま変換されており、他のFMファイルに流用する際、持って行きやすい形です。

temp calcFormula

temp formula
temp formula

codeTemp の内容を計算式で使えるテキストに整形した計算結果。ダブルクォートのエスケープ処理などを施したもの。他で流用する際、計算式の中に書き込める書式です。

Substitute

substitute
substitute

これは coeTemp の変数を実際の値に置き換えただけの計算式です。テンプレに書いたコードそのままです。これはつまり、CodeRun から実行できませんが、コピーしてターミナルやスクリプトエディタに直接ペーストして使う形です。

CodeReference

別途オマケテーブルに commandReference を作っています。これは、コマンドの単語帳みたいなもので、コマンドとそのオプションをメモっておくためのテーブルです。

commandReference 画面
commandReference – コマンドの覚え書き、コマンド単語帳みたいなテーブル

初心者学習用の覚え書きですね。はい。超初心者の筆者にとってこれは最初役に立ちました。

このテーブルは CodeRun ともリレーションされていて、レコードで使用した関連コマンドをすぐに参照できます。

オマケテーブルのさらにオマケで、テストを作ったりできます。

codeRun-commandRefernce TEST
commandRefernce テスト

オプションを加えたりするテストなわけですが大したものじゃないです。

 

Penguin icon ということで、Macで実行可能なFileMakerコード管理、使い方マニュアルでした。

このシリーズのリンクを置いておきます。

コメント

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください