tmkw / sf_cli

A Ruby class library for Salesforce CLI
https://tmkw.github.io/sf_cli/
MIT License
0 stars 0 forks source link

change `sf_cli` command design #163

Open tmkw opened 2 hours ago

tmkw commented 2 hours ago

If this is possible, the command can do like this:

$ sf_cli -g project -m dev -r   #=> make a project and manifest which is created by the settings of org 'dev', and retrieve source file from the org
tmkw commented 2 hours ago

Use OptionParser at maximum

tmkw commented 2 hours ago

for version management, see bundler's gemspec

$ cat foodie/foodie.gemspec 
# frozen_string_literal: true

require_relative "lib/foodie/version"

Gem::Specification.new do |spec|
  spec.name = "foodie"
  spec.version = Foodie::VERSION
  spec.authors = ["TODO: Write your name"]
  spec.email = ["TODO: Write your email address"]

  spec.summary = "TODO: Write a short summary, because RubyGems requires one."
  spec.description = "TODO: Write a longer description or delete this line."
  spec.homepage = "TODO: Put your gem's website or public repo URL here."
  spec.required_ruby_version = ">= 3.0.0"

  spec.metadata["allowed_push_host"] = "TODO: Set to your gem server 'https://example.com'"

  spec.metadata["homepage_uri"] = spec.homepage
  spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here."
  spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."

  # Specify which files should be added to the gem when it is released.
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
  gemspec = File.basename(__FILE__)
  spec.files = IO.popen(%w[git ls-files -z], chdir: __dir__, err: IO::NULL) do |ls|
    ls.readlines("\x0", chomp: true).reject do |f|
      (f == gemspec) ||
        f.start_with?(*%w[bin/ test/ spec/ features/ .git appveyor Gemfile])
    end
  end
  spec.bindir = "exe"
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
  spec.require_paths = ["lib"]

  # Uncomment to register a new dependency of your gem
  # spec.add_dependency "example-gem", "~> 1.0"

  # For more information and examples about making a new gem, check out our
  # guide at: https://bundler.io/guides/creating_gem.html
end
$ cat foodie/lib/foodie/version.rb 
# frozen_string_literal: true

module Foodie
  VERSION = "0.1.0"
end