[英]How do I wrap a compiled command line tool for use in Ruby?
我已經為我的機器編譯並測試了一個開源命令行SIP客戶端,我們可以假定它具有與商店中所有其他機器相同的體系結構。 我的意思是,我已經將已編譯的二進制文件成功傳遞給了商店中的其他人,他們可以使用它們。
該工具具有相當深奧的調用,在執行之前先將一個簡單的bash腳本通過管道傳遞給它,如下所示:
(sleep 3; echo "# 1"; sleep 3; echo h) | pjsua sip:somephonenumber@ip --flag_1 val --flag_2 val
請注意,領先的bash腳本是程序功能的重要組成部分,並且該行本身似乎是使用的最佳實踐。
在構想我的問題時,我正在考慮以下方面:
我認為我不能指望商店中有很多其他人可以自己編譯二進制文件
在商店中擁有通用的系統架構,可以合理地認為一個倉庫可以容納最新的版本
有一種使用Ruby調用該工具的方法,對於大多數人來說將是最有用和最易用的。
通過的主要bash腳本需要完全可擴展。 這些表示可修改的“方案”,例如,在這種情況下:
可能有多達十二個標志。 可能是配置文件。
創建一個以其核心為核心的命令行工具已經被編譯過,這是合理的做法嗎?
創建使用命令行工具的gem似乎是合理的。 我唯一要說的是使用system('which psjua')
檢查命令是否可用system('which psjua')
如果尚未安裝system('which psjua')
引發提示錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.