Ich baue ein CLI-Juwel mit Ruby mit Thor. Ich renne , die rake build
dann die Aufgabe ausführt, den Edelstein lokal zu installieren. Wenn ich jedoch versuche, es in der Befehlszeile auszuführen, kann es den Befehl nicht finden. Der Edelstein heißt smokestack
, also theoretisch sollte in der Lage sein, es im Terminal zu laufen, sobald es installiert ist.Manuelles Testen eines Ruby CLI
Struktur:
├── CODE_OF_CONDUCT.md
├── Gemfile
├── Gemfile.lock
├── LICENSE.txt
├── README.md
├── Rakefile
├── bin
│ ├── console
│ ├── setup
│ └── smokestack
├── lib
│ ├── smokestack
│ │ ├── build.rb
│ │ ├── cli.rb
│ │ └── version.rb
│ └── smokestack.rb
├── pkg
│ └── smokestack-0.1.0.gem
├── smokestack.gemspec
└── test
├── build_test.rb
├── smokestack_test.rb
└── test_helper.rb
ist/Schlot:
#!/usr/bin/env ruby -wU
require 'smokestack'
Smokestack::Cli.start(ARGV)
Sie können in dem Baum finden Sie in die pkg
Ordner aus, wenn ich rake install
lief. Hier ist das Ergebnis, wenn ich laufe, dass:
smokestack 0.1.0 built to pkg/smokestack-0.1.0.gem.
smokestack (0.1.0) installed.
ich smokestack
in meinem Terminal dann laufen und die Fehler: zsh: command not found: smokestack
Ich habe auch versucht gem install --local ~/path/to/gem/pkg/gem.gem
Ergebnis:
Successfully installed smokestack-0.1.0
Parsing documentation for smokestack-0.1.0
Done installing documentation for smokestack after 0 seconds
1 gem installed
Diese führt zu demselben 'Befehl nicht gefunden Fehler'.
Frage Wie soll ich dieses CLI lokal ausführen, um es während der Entwicklung zu testen?
Es interagiert ideal mit dem aktuellen Projekt, in dem es ist, so nur bundle exec bin/smokestack
innerhalb des eigenen Verzeichnisses führt nicht zu den Ergebnissen, die ich richtig brauche. Es sollte doch ein System-CLI sein oder?
Here is the repo für zusätzlichen Kontext bei Bedarf.