使用Ruby检测平台是否响应CLI命令

雌性

我正在开发一个开源的Rails 4项目,该项目使用PDF Tool Kit(“ pdf-forms” gem)基于存储在应用程序数据库中的信息自动填充PDF表单。PDFtk需要安装二进制文件,而实例化的PDFtk模型需要二进制文件的路径。该路径必须是动态的,因此它可以在Heroku,Mac OS X和Windows上运行。我可以使用“哪个”命令在* nix机器上找到路径。但是,Windows不使用“哪个”,而是使用“哪里”。

有没有一种方法可以检测平台是否响应命令,如果响应,然后执行命令?

我最好的尝试是使用RbConfig检测平台(请参见下文)。但是,某些Windows平台(例如Cygwin)会响应* nix命令。作为Mac用户,我对Windows的每个平台都不熟悉。

def pdftk
  # Use path stored in Heroku env vars or else get path to local binaries
  @pdftk ||= PdfForms.new(ENV['PDFTK_PATH'] || local_path) 
end

def local_path
  os = RbConfig::CONFIG['arch']
  if /mswin/ =~ os
    path = `where pdftk` # Get pdftk filepath, Windows equiv of *nix 'which' command
  else
    path = `which pdftk` # Get pdftk filepath on POSIX systems
  end

  path
end
10点

stdlib mkmf模块具有一个鲜为人知的辅助函数,find_executable()可以为您提供所需的功能

require 'mkmf'
path = find_executable('cli-command')

我尚未在Windows上亲自对其进行过测试,但我认为它应该可以工作... http://ruby-doc.org/stdlib-2.3.0/libdoc/mkmf/rdoc/MakeMakefile.html#method-i- find_executable

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Ruby检测平台是否响应CLI命令

来自分类Dev

如何使用pexpect在CLI上响应命令问题?

来自分类Dev

检测iframe网页是否响应

来自分类Dev

如何检测命令输出是否在UNIX管道中使用

来自分类Dev

使用 VENTouchLock;如何检测响应?

来自分类Dev

是否可以检测是否使用CALL命令启动了批处理文件?

来自分类Dev

检测命令是否已打印到stderr

来自分类Dev

Ruby使用检测更新值

来自分类Dev

Ruby:在返回的对象上调用方法以检测是否使用了包装器

来自分类Dev

使用pySerial读取响应AT命令

来自分类Dev

使用ClickListener检测演员的行为:无响应?

来自分类Dev

使用aiohttp检测HTTP响应编码

来自分类Dev

使用Ruby搜索JSON响应

来自分类Dev

查看服务器是否允许cli命令使用ftp_exec

来自分类Dev

是否有任何命令使用AWS SAM CLI在“调试”模式下本地运行Lambda函数?

来自分类Dev

在设计 CLI 时,是否有使用选项或子命令的偏好/经验法则?

来自分类Dev

检测相机是否在使用中?

来自分类Dev

检测相机是否在使用中?

来自分类Dev

检测呼叫平台

来自分类Dev

如何检测服务器是否通过TIdTCPClient响应请求?

来自分类Dev

Azure网站-使用PowerShell或跨平台CLI配置SSL绑定

来自分类Dev

检测bash中su命令的使用

来自分类Dev

是否有预处理器宏可跨平台检测C99?

来自分类Dev

是否有预处理器宏可跨平台检测C99?

来自分类Dev

检测穿戴应用是否以语音命令或触摸输入启动

来自分类Dev

检测脚本是否从Racket的命令行执行?

来自分类Dev

检测是否从Laravel 5中的命令行运行

来自分类Dev

以编程方式检测命令是否可以作为模块运行

来自分类Dev

检测是否按下了鼠标按钮,然后调用脚本或命令

Related 相关文章

热门标签

归档