Class: Shadwire::CLI

Inherits:
Thor
  • Object
show all
Defined in:
lib/shadwire/cli.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.exit_on_failure?Boolean

Returns:

  • (Boolean)


9
# File 'lib/shadwire/cli.rb', line 9

def self.exit_on_failure? = true

Instance Method Details

#add(*names) ⇒ Object



44
45
46
47
48
49
50
51
52
53
# File 'lib/shadwire/cli.rb', line 44

def add(*names)
  run_command do |root, ui|
    raise Shadwire::Error, "add requires at least one component name" if names.empty?

    Commands::Add.new(
      root:, names:, yes: options[:yes], overwrite: options[:overwrite],
      no_deps: !options[:deps], registry: options[:registry], json: options[:json], ui:
    ).call
  end
end

#diff(*names) ⇒ Object



89
90
91
92
93
94
95
96
# File 'lib/shadwire/cli.rb', line 89

def diff(*names)
  run_command do |root, ui|
    result = Commands::Diff.new(
      root:, names:, registry: options[:registry], json: options[:json], ui:
    ).call
    exit 1 if options[:exit_code] && result[:drifted]
  end
end

#info(name) ⇒ Object



78
79
80
81
82
# File 'lib/shadwire/cli.rb', line 78

def info(name)
  run_command do |root, ui|
    Commands::Info.new(root:, name:, registry: options[:registry], json: options[:json], ui:).call
  end
end

#initObject



26
27
28
29
30
31
32
33
# File 'lib/shadwire/cli.rb', line 26

def init
  run_command do |root, ui|
    Commands::Init.new(
      root:, registry: options[:registry], yes: options[:yes],
      force: options[:force], json: options[:json], ui:
    ).call
  end
end

#listObject



58
59
60
61
62
# File 'lib/shadwire/cli.rb', line 58

def list
  run_command do |root, ui|
    Commands::List.new(root:, registry: options[:registry], json: options[:json], ui:).call
  end
end

#remove(*names) ⇒ Object



121
122
123
124
125
126
127
128
129
# File 'lib/shadwire/cli.rb', line 121

def remove(*names)
  run_command do |root, ui|
    raise Shadwire::Error, "remove requires at least one component name" if names.empty?

    Commands::Remove.new(
      root:, names:, yes: options[:yes], registry: options[:registry], json: options[:json], ui:
    ).call
  end
end

#search(query = nil) ⇒ Object



67
68
69
70
71
72
73
# File 'lib/shadwire/cli.rb', line 67

def search(query = nil)
  run_command do |root, ui|
    raise Shadwire::Error, "search requires a query" if query.nil? || query.strip.empty?

    Commands::Search.new(root:, query:, registry: options[:registry], json: options[:json], ui:).call
  end
end

#statusObject



134
135
136
137
138
# File 'lib/shadwire/cli.rb', line 134

def status
  run_command do |root, ui|
    Commands::Status.new(root:, registry: options[:registry], json: options[:json], ui:).call
  end
end

#update(*names) ⇒ Object



107
108
109
110
111
112
113
114
# File 'lib/shadwire/cli.rb', line 107

def update(*names)
  run_command do |root, ui|
    Commands::Update.new(
      root:, names:, yes: options[:yes], overwrite: options[:overwrite],
      no_deps: !options[:deps], registry: options[:registry], json: options[:json], ui:
    ).call
  end
end

#versionObject



15
16
17
# File 'lib/shadwire/cli.rb', line 15

def version
  puts Shadwire::VERSION
end