Class: Ace::Demo::Molecules::VhsExecutor
- Inherits:
-
Object
- Object
- Ace::Demo::Molecules::VhsExecutor
- Defined in:
- lib/ace/demo/molecules/vhs_executor.rb
Constant Summary collapse
- INSTALL_URL =
"https://github.com/charmbracelet/vhs"
Instance Method Summary collapse
Instance Method Details
#run(cmd, vhs_bin: "vhs", chdir: nil) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/ace/demo/molecules/vhs_executor.rb', line 19 def run(cmd, vhs_bin: "vhs", chdir: nil) = {} [:chdir] = chdir if chdir stdout, stderr, status = Open3.capture3(browser_environment, *cmd, **) result = Models::ExecutionResult.new( stdout: stdout.strip, stderr: stderr.strip, success: status.success?, exit_code: status.exitstatus ) return result if result.success? raise VhsExecutionError, "VHS execution failed: #{result.stderr}" rescue Errno::ENOENT raise VhsNotFoundError, "VHS not found. Install: #{INSTALL_URL}" end |
#vhs_available?(vhs_bin: "vhs") ⇒ Boolean
12 13 14 15 16 17 |
# File 'lib/ace/demo/molecules/vhs_executor.rb', line 12 def vhs_available?(vhs_bin: "vhs") _stdout, _stderr, status = Open3.capture3(vhs_bin, "--version") status.success? rescue Errno::ENOENT false end |