Expand description
AppleScript path for tag-admin operations (create/rename/merge/
delete/move_under). Things’ JSON URL has no global tag-admin verbs,
so these go through osascript -e <script> and trust the synchronous
exit code as verification.
Symmetric to core/writer/ for the JSON URL path: a driver trait
(AppleScriptDriver) with a production impl (OsascriptDriver) and a
recording test impl (RecordingAppleScript), pure render_* helpers
in script.rs, and a facade (TagAdmin) in admin.rs that owns
the safety gate and result composition.
Re-exports§
pub use admin::TagAdmin;pub use admin::TagOutcome;pub use driver::AppleScriptDriver;pub use driver::OsascriptDriver;pub use driver::RecordingAppleScript;
Modules§
- admin
TagAdmin— facade over the AppleScript driver. Owns the safety gate and composes aTagOutcomeper call. Each method renders the script via the pure helpers inscript.rs, then either short-circuits (DryRun), errors out (Forbidden), or hands the script to the injectedAppleScriptDriver.- driver
- AppleScript driver seam.
- script
- Pure AppleScript render functions for tag-admin ops. No I/O — each
function takes the inputs the tool surface accepts and returns the
AppleScript source as a
String. The driver (OsascriptDriver) and the facade (TagAdmin) are the layers that actually run the script.