簡體   English   中英

Ruby Thor命令行工具命令

[英]Ruby thor command line tool commands

我正計划制作我的第一個命令行工具,並且想知道命名和命令的工作方式。

我希望我的工具的功能類似於Git,從某種意義上說,您只需安裝它,然后運行命令,只需輸入git clonegit commit 在許多示例中,我已經看到工具類似於thor foo:bar./foo.rb bar

我的主要問題是如何做到這一點,如果我的工具名稱是Foo ,並且工具中的命令是bar ,那么用戶要做的就是在命令行中運行Foo bar

對於git clone ,它的工作方式是執行git程序並將clone作為參數傳遞給它。 因此,如果您有幾個應該以類似方式啟動的腳本,則可以創建一個小型啟動器。 該代碼在bash中(但是腳本與sh兼容,因此您可以安全地將shebang更改為/bin/sh )。 用任何其他語言編寫相同的東西非常容易。

#!/bin/bash

command=$1
shift

case $1 in    
    cmd1)
        echo "Executing command #1"
        ./smallcmd1 "$@"
        ;;
    cmd2)
        echo "Executing command $command"
        ./smallcmd2 "$@"
        ;;
    '')
        echo 'No option specified'
        exit 1
        ;;

    *) echo "Invalid option"
        exit 1
        ;;
esac
exit $?

其中smallcmd是您的輔助命令腳本或程序。

現在您可以執行它:

./mycommand smallcmd1

也可以傳遞其他參數。

如果將此腳本放置在任何$ PATH目錄中,則可以省略./如下所示:

mycommand smallcmd1

使用Thor編寫可執行文件非常簡單。 您要做的就是:

  • 包括紅寶石shebang線。
  • 在腳本中要求“ thor”。
  • 定義您的雷神類。
  • #{YourThorClassname}.start添加到腳本的底部。

示例:my-cli.rb

#!/usr/bin/env ruby

require "thor"

class MyCLI < Thor
  desc "foo", "Prints foo"
  def foo
    puts "foo"
  end
end

MyCLI.start

使腳本可執行:

chmod a+x my-cli.rb

現在您可以輸入:

./my-cli.rb foo

您可以在Thor Wiki中找到類似的示例和更多幫助。

您甚至可以將文件重命名為my-cli (不帶.rb擴展名),並且由於文件中的ruby shebang而仍然有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM