Sha256: cad855de6b71d3273bb9222e5011c07718d47ae98b2074e58f7051488f149bb1
Contents?: true
Size: 1.55 KB
Versions: 1
Compression:
Stored size: 1.55 KB
Contents
# frozen_string_literal: true module Vercon module Commands class Init < Dry::CLI::Command desc 'Initialize vercon config' option :token, desc: 'Claude API token' option :claude_model, desc: 'Claude model to use by default' def initialize @stdout = Vercon::Stdout.new @config = Vercon::Config.new @config_existed = @config.exists? super end def call(**opts) token_changed = setup_token(opts) claude_changed = setup_claude_model(opts) if token_changed || claude_changed @stdout.ok("Config file #{@config_existed ? 'updated' : 'created'}!") else @stdout.warn('Config file is not touched.') end end private def setup_token(opts) if @config.token && @stdout.no?("Claude API token already set to `#{@config.token}`. Do you want to replace it?") return end token = opts[:token] token ||= @stdout.ask('Provide your Claude API token:') @config.token = token end def setup_claude_model(opts) if @config.claude_model && @stdout.no?("Claude default model already set to `#{@config.claude_model}`. Do you want to replace it?") return end model = opts[:claude_model] model ||= @stdout.select('Select Claude model that will be used by default:', Vercon::Config::CLAUDE_MODELS, default: Vercon::Config::DEFAULT_CLAUDE_MODEL, cycle: true) @config.claude_model = model end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
vercon-0.0.1 | lib/vercon/commands/init.rb |