bard 2.2.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +0 -21
  3. data/README.md +7 -487
  4. data/Rakefile +1 -4
  5. data/bard.gemspec +2 -11
  6. data/lib/bard/config.rb +23 -20
  7. data/lib/bard/plugins/deploy_url/target_methods.rb +16 -0
  8. data/lib/bard/plugins/ping/target_methods.rb +0 -9
  9. data/lib/bard/plugins/ssh/connection.rb +2 -35
  10. data/lib/bard/target.rb +0 -15
  11. data/lib/bard/version.rb +1 -1
  12. data/lib/bard.rb +2 -1
  13. data/spec/bard/capability_spec.rb +0 -8
  14. data/spec/bard/config_spec.rb +30 -67
  15. data/spec/bard/target_spec.rb +35 -36
  16. metadata +5 -225
  17. data/ARCHITECTURE.md +0 -957
  18. data/CUSTOM_STRATEGIES.md +0 -701
  19. data/MIGRATION_GUIDE.md +0 -513
  20. data/PLUGINS.md +0 -99
  21. data/bin/bard +0 -4
  22. data/features/ci.feature +0 -63
  23. data/features/data.feature +0 -13
  24. data/features/deploy.feature +0 -14
  25. data/features/deploy_git_workflow.feature +0 -89
  26. data/features/run.feature +0 -14
  27. data/features/step_definitions/bard_steps.rb +0 -136
  28. data/features/support/bard-coverage +0 -16
  29. data/features/support/env.rb +0 -22
  30. data/features/support/test_server.rb +0 -216
  31. data/lib/bard/cli.rb +0 -44
  32. data/lib/bard/command.rb +0 -31
  33. data/lib/bard/copy.rb +0 -45
  34. data/lib/bard/plugins/data.rb +0 -56
  35. data/lib/bard/plugins/deploy/ci/github_actions.rb +0 -202
  36. data/lib/bard/plugins/deploy/ci/jenkins.rb +0 -176
  37. data/lib/bard/plugins/deploy/ci/local.rb +0 -57
  38. data/lib/bard/plugins/deploy/ci/runner.rb +0 -112
  39. data/lib/bard/plugins/deploy/ci/state.rb +0 -40
  40. data/lib/bard/plugins/deploy/ci.rb +0 -38
  41. data/lib/bard/plugins/deploy/ssh_strategy.rb +0 -26
  42. data/lib/bard/plugins/deploy/strategy.rb +0 -60
  43. data/lib/bard/plugins/deploy.rb +0 -260
  44. data/lib/bard/plugins/git.rb +0 -45
  45. data/lib/bard/plugins/github.rb +0 -152
  46. data/lib/bard/plugins/github_pages/strategy.rb +0 -170
  47. data/lib/bard/plugins/github_pages.rb +0 -35
  48. data/lib/bard/plugins/hurt.rb +0 -13
  49. data/lib/bard/plugins/install/.github/dependabot.yml +0 -18
  50. data/lib/bard/plugins/install/.github/workflows/cache-ci.yml +0 -15
  51. data/lib/bard/plugins/install/.github/workflows/ci.yml +0 -74
  52. data/lib/bard/plugins/install/apt_dependencies.rb +0 -33
  53. data/lib/bard/plugins/install/ci +0 -5
  54. data/lib/bard/plugins/install/setup +0 -13
  55. data/lib/bard/plugins/install/specified_bundler.rb +0 -15
  56. data/lib/bard/plugins/install/specified_ruby.rb +0 -59
  57. data/lib/bard/plugins/install.rb +0 -9
  58. data/lib/bard/plugins/open.rb +0 -20
  59. data/lib/bard/plugins/ping/check.rb +0 -66
  60. data/lib/bard/plugins/ping.rb +0 -10
  61. data/lib/bard/plugins/run.rb +0 -19
  62. data/lib/bard/plugins/setup.rb +0 -75
  63. data/lib/bard/plugins/ssh/copy.rb +0 -95
  64. data/lib/bard/plugins/ssh.rb +0 -10
  65. data/lib/bard/plugins/vim.rb +0 -6
  66. data/lib/bard/retryable.rb +0 -25
  67. data/lib/bard/secrets.rb +0 -10
  68. data/spec/acceptance/.gitignore +0 -4
  69. data/spec/acceptance/docker/Dockerfile +0 -36
  70. data/spec/acceptance/docker/test_key +0 -27
  71. data/spec/acceptance/docker/test_key.pub +0 -1
  72. data/spec/bard/ci/github_actions_spec.rb +0 -138
  73. data/spec/bard/ci/jenkins_spec.rb +0 -139
  74. data/spec/bard/ci/runner_spec.rb +0 -61
  75. data/spec/bard/ci_spec.rb +0 -10
  76. data/spec/bard/cli/ci_spec.rb +0 -170
  77. data/spec/bard/cli/data_spec.rb +0 -58
  78. data/spec/bard/cli/deploy_spec.rb +0 -243
  79. data/spec/bard/cli/hurt_spec.rb +0 -17
  80. data/spec/bard/cli/install_spec.rb +0 -19
  81. data/spec/bard/cli/master_key_spec.rb +0 -38
  82. data/spec/bard/cli/open_spec.rb +0 -51
  83. data/spec/bard/cli/ping_spec.rb +0 -32
  84. data/spec/bard/cli/run_spec.rb +0 -57
  85. data/spec/bard/cli/setup_spec.rb +0 -99
  86. data/spec/bard/cli/ssh_spec.rb +0 -40
  87. data/spec/bard/cli/stage_spec.rb +0 -127
  88. data/spec/bard/cli/vim_spec.rb +0 -28
  89. data/spec/bard/command_spec.rb +0 -30
  90. data/spec/bard/copy_spec.rb +0 -69
  91. data/spec/bard/deploy_strategy/github_pages_spec.rb +0 -58
  92. data/spec/bard/deploy_strategy/ssh_spec.rb +0 -135
  93. data/spec/bard/deploy_strategy_spec.rb +0 -107
  94. data/spec/bard/dynamic_dsl_spec.rb +0 -46
  95. data/spec/bard/git_spec.rb +0 -101
  96. data/spec/bard/github_spec.rb +0 -45
  97. data/spec/bard/ping_spec.rb +0 -60
  98. data/spec/bard/ssh_copy_spec.rb +0 -44
@@ -1,8 +1,8 @@
1
1
  require "uri"
2
- require "shellwords"
3
2
  require "bard/plugins/ssh/server"
4
- require "bard/command"
5
3
 
4
+ # Data-only SSH mixin: enough for the parser to hold a target's connection details and
5
+ # derive its url. The command-running methods (run!/ssh_command) live in bard-cli.
6
6
  module Bard
7
7
  module SSH
8
8
  def server
@@ -38,38 +38,5 @@ module Bard
38
38
  str += "/#{file_path}" if file_path
39
39
  str
40
40
  end
41
-
42
- def run!(command, home: false, verbose: false, quiet: false, capture: false)
43
- result = Command.run!(ssh_command(command, home:), verbose:, quiet:)
44
- result if capture
45
- end
46
-
47
- def run(command, home: false, verbose: false, quiet: false)
48
- Command.run(ssh_command(command, home:), verbose:, quiet:)
49
- end
50
-
51
- def exec!(command, home: false)
52
- Command.exec!(ssh_command(command, home:))
53
- end
54
-
55
- private
56
-
57
- def ssh_command(command, home: false)
58
- cmd = command
59
- cmd = "#{env} #{command}" if env
60
-
61
- unless home
62
- cmd = "cd #{path} && #{cmd}" if path
63
- end
64
-
65
- ssh_opts = ["-tt", "-o StrictHostKeyChecking=no", "-o UserKnownHostsFile=/dev/null", "-o LogLevel=ERROR"]
66
- ssh_opts << "-i #{ssh_key}" if ssh_key
67
- ssh_opts << "-p #{server.port}" if server.port && server.port != "22"
68
- ssh_opts << "-o ProxyJump=#{gateway}" if gateway
69
-
70
- ssh_target = "#{server.user}@#{server.host}"
71
-
72
- "ssh #{ssh_opts.join(" ")} #{ssh_target} #{Shellwords.shellescape(cmd)}"
73
- end
74
41
  end
75
42
  end
data/lib/bard/target.rb CHANGED
@@ -1,5 +1,3 @@
1
- require "bard/command"
2
-
3
1
  module Bard
4
2
  class Target
5
3
  attr_reader :key, :config
@@ -30,19 +28,6 @@ module Bard
30
28
  @path || config.project_name
31
29
  end
32
30
 
33
- def run!(command, home: false, verbose: false, quiet: false, capture: false)
34
- result = Command.run!(command, verbose:, quiet:)
35
- result if capture
36
- end
37
-
38
- def run(command, home: false, verbose: false, quiet: false)
39
- Command.run(command, verbose:, quiet:)
40
- end
41
-
42
- def exec!(command, home: false)
43
- Command.exec!(command)
44
- end
45
-
46
31
  # Utility methods
47
32
  def to_s
48
33
  key.to_s
data/lib/bard/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Bard
2
- VERSION = "2.2.0"
2
+ VERSION = "3.1.0"
3
3
  end
4
4
 
data/lib/bard.rb CHANGED
@@ -1 +1,2 @@
1
- require "bard/cli"
1
+ require "bard/version"
2
+ require "bard/config"
@@ -44,12 +44,4 @@ describe "Capability System" do
44
44
  end
45
45
  end
46
46
 
47
- describe "capability dependency checking" do
48
- context "URL-dependent methods" do
49
- it "ping! requires url capability" do
50
- expect { target.ping! }
51
- .to raise_error(/url capability not configured/)
52
- end
53
- end
54
- end
55
47
  end
@@ -1,7 +1,7 @@
1
+ require "tmpdir"
2
+ require "fileutils"
1
3
  require "bard/config"
2
4
  require "bard/plugins/ssh/target_methods"
3
- require "bard/plugins/data"
4
- require "bard/plugins/github_pages"
5
5
 
6
6
  describe Bard::Config do
7
7
  describe ".detect_project_name" do
@@ -56,8 +56,8 @@ describe Bard::Config do
56
56
  end
57
57
 
58
58
  describe "#targets" do
59
- it "is prefilled with default targets" do
60
- expect(subject.targets.keys).to eq %i[local gubs ci staging production]
59
+ it "is prefilled with the generic local target" do
60
+ expect(subject.targets.keys).to eq %i[local]
61
61
  end
62
62
 
63
63
  it "creates Target instances for defaults" do
@@ -66,19 +66,6 @@ describe Bard::Config do
66
66
  end
67
67
  end
68
68
  end
69
-
70
- describe "#[]" do
71
- it "defines a default production target equivalent to staging" do
72
- expect(subject[:production]).to eq subject[:staging]
73
- expect(subject[:production]).not_to equal subject[:staging]
74
- end
75
- end
76
-
77
- describe "#data" do
78
- it "return an empty array" do
79
- expect(subject.data).to eq []
80
- end
81
- end
82
69
  end
83
70
 
84
71
  context "with production definition" do
@@ -87,8 +74,6 @@ describe Bard::Config do
87
74
  ssh "www@ssh.botandrose.com:22022"
88
75
  url "tracker.botandrose.com"
89
76
  end
90
-
91
- data "public/system", "public/ckeditor"
92
77
  SOURCE
93
78
 
94
79
  describe "#project_name" do
@@ -98,75 +83,53 @@ describe Bard::Config do
98
83
  end
99
84
 
100
85
  describe "#targets" do
101
- it "contains the defined target" do
102
- expect(subject.targets.keys).to eq %i[local gubs ci staging production]
86
+ it "contains the defined target alongside the local default" do
87
+ expect(subject.targets.keys).to eq %i[local production]
103
88
  end
104
89
  end
105
90
 
106
91
  describe "#target" do
107
- it "can overwrite existing definition" do
92
+ it "can define a target" do
108
93
  subject.target :staging do
109
94
  ssh "www@tracker-staging.botandrose.com:22022"
110
95
  end
111
96
  expect(subject[:staging].server.to_s).to eq "www@tracker-staging.botandrose.com:22022"
112
97
  end
113
98
  end
114
-
115
- describe "#data" do
116
- it "returns the data setting" do
117
- expect(subject.data).to eq ["public/system", "public/ckeditor"]
118
- end
119
- end
120
99
  end
121
100
 
122
- context "with remove_target" do
123
- subject { described_class.new("tracker", source: <<~SOURCE) }
124
- remove_target :staging
125
- target :staging do
126
- ssh "deploy@new-host.com"
127
- end
128
- SOURCE
101
+ describe "unknown DSL (plugin-contributed)" do
102
+ after { Bard::Config.strict = false }
129
103
 
130
- it "replaces the default with a fresh target" do
131
- staging = subject[:staging]
132
- expect(staging).to be_a(Bard::Target)
133
- expect(staging.ssh.to_s).to eq "deploy@new-host.com"
134
- expect(staging.url).to eq "https://new-host.com"
104
+ it "is tolerated as an attribute by default (server/test parsing)" do
105
+ config = described_class.new("tracker", source: <<~SOURCE)
106
+ ci :github_actions
107
+ data "public/system", "public/ckeditor"
108
+ SOURCE
109
+ expect(config.ci).to eq :github_actions
110
+ expect(config.data).to eq ["public/system", "public/ckeditor"]
135
111
  end
136
- end
137
112
 
138
- context "with github_pages directive" do
139
- subject { described_class.new("test", source: "github_pages 'example.com'") }
140
-
141
- describe "#target" do
142
- it "creates a production target with github_pages enabled" do
143
- production = subject[:production]
144
- expect(production).not_to be_nil
145
- expect(production.github_pages).to eq "example.com"
146
- expect(production.ssh).to be_nil
147
- end
113
+ it "raises in strict mode (CLI parsing) so typos surface" do
114
+ Bard::Config.strict = true
115
+ expect {
116
+ described_class.new("tracker", source: "typoed_directive :oops")
117
+ }.to raise_error(NoMethodError)
148
118
  end
149
119
  end
150
120
 
151
- context "with github_pages directive and no domain" do
152
- subject { described_class.new("test", source: "github_pages") }
153
-
154
- before do
155
- allow(Bard::Git).to receive(:github_pages_url).and_return("https://acme.github.io/widgets/")
156
- end
121
+ describe "#remove_target" do
122
+ subject { described_class.new("tracker") }
157
123
 
158
- describe "#target" do
159
- it "creates a production target with github_pages enabled and no custom domain" do
160
- production = subject[:production]
161
- expect(production).not_to be_nil
162
- expect(production.has_capability?(:github_pages)).to be true
163
- expect(production.github_pages).to be_nil
164
- expect(production.ssh).to be_nil
124
+ it "removes a defined target" do
125
+ subject.target :staging do
126
+ ssh "deploy@new-host.com"
165
127
  end
128
+ expect(subject[:staging].ssh.to_s).to eq "deploy@new-host.com"
129
+ expect(subject[:staging].url).to eq "https://new-host.com"
166
130
 
167
- it "uses the derived github.io url for pinging" do
168
- expect(subject[:production].url).to eq "https://acme.github.io/widgets/"
169
- end
131
+ subject.remove_target :staging
132
+ expect(subject[:staging]).to be_nil
170
133
  end
171
134
  end
172
135
  end
@@ -4,6 +4,7 @@ require "bard/target"
4
4
  require "bard/plugins/url/target_methods"
5
5
  require "bard/plugins/ssh/target_methods"
6
6
  require "bard/plugins/ping/target_methods"
7
+ require "bard/plugins/deploy_url/target_methods"
7
8
 
8
9
  describe Bard::Target do
9
10
  let(:config) { double("config", project_name: "testapp") }
@@ -134,54 +135,52 @@ describe Bard::Target do
134
135
  end
135
136
  end
136
137
 
137
- describe "#path" do
138
- it "defaults to project name" do
139
- expect(target.path).to eq("testapp")
138
+ describe "#deploy_url" do
139
+ it "builds the /bard/deploy endpoint from an ssh-derived url" do
140
+ target.ssh("www@example.com:22022")
141
+ expect(target.deploy_url).to eq("https://example.com/bard/deploy")
140
142
  end
141
143
 
142
- it "can be set via ssh options" do
143
- target.ssh("deploy@example.com:22", path: "/app")
144
- expect(target.path).to eq("/app")
144
+ it "prefers the ping host over the ssh-derived url" do
145
+ target.ssh("www@ssh.example.com:22022")
146
+ target.ping("example.com")
147
+ expect(target.deploy_url).to eq("https://example.com/bard/deploy")
145
148
  end
146
- end
147
149
 
148
- describe "command execution" do
149
- describe "local (base)" do
150
- it "runs commands locally" do
151
- expect(Bard::Command).to receive(:run!)
152
- .with("ls", verbose: false, quiet: false)
153
- target.run!("ls")
154
- end
150
+ it "anchors to the host root, dropping any ping path" do
151
+ target.ping("admin.example.com/up")
152
+ expect(target.deploy_url).to eq("https://admin.example.com/bard/deploy")
155
153
  end
156
154
 
157
- describe "remote (SSH)" do
158
- before do
159
- target.ssh("deploy@example.com:22", path: "/app")
160
- end
155
+ it "uses the first ping when several are configured" do
156
+ target.ping("primary.example.com", "secondary.example.com")
157
+ expect(target.deploy_url).to eq("https://primary.example.com/bard/deploy")
158
+ end
161
159
 
162
- it "runs commands on remote server" do
163
- expected_cmd = "ssh -tt -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=ERROR deploy@example.com #{Shellwords.shellescape("cd /app && ls")}"
164
- expect(Bard::Command).to receive(:run!)
165
- .with(expected_cmd, verbose: false, quiet: false)
166
- target.run!("ls")
167
- end
160
+ it "falls back to url when ping is disabled" do
161
+ target.url("example.com")
162
+ target.ping(false)
163
+ expect(target.deploy_url).to eq("https://example.com/bard/deploy")
164
+ end
168
165
 
169
- it "runs commands without raising on remote server" do
170
- expected_cmd = "ssh -tt -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=ERROR deploy@example.com #{Shellwords.shellescape("cd /app && ls")}"
171
- expect(Bard::Command).to receive(:run)
172
- .with(expected_cmd, verbose: false, quiet: false)
173
- target.run("ls")
174
- end
166
+ it "returns nil when the target has no web address" do
167
+ expect(target.deploy_url).to be_nil
168
+ end
169
+ end
175
170
 
176
- it "replaces process with remote command" do
177
- expected_cmd = "ssh -tt -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=ERROR deploy@example.com #{Shellwords.shellescape("cd /app && ls")}"
178
- expect(Bard::Command).to receive(:exec!)
179
- .with(expected_cmd)
180
- target.exec!("ls")
181
- end
171
+ describe "#path" do
172
+ it "defaults to project name" do
173
+ expect(target.path).to eq("testapp")
174
+ end
175
+
176
+ it "can be set via ssh options" do
177
+ target.ssh("deploy@example.com:22", path: "/app")
178
+ expect(target.path).to eq("/app")
182
179
  end
183
180
  end
184
181
 
182
+ # command execution (run!/run/exec!) lives in bard-cli now; covered by its target_spec.
183
+
185
184
  describe "#to_s" do
186
185
  it "returns the target key as string" do
187
186
  expect(target.to_s).to eq("production")
metadata CHANGED
@@ -1,70 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bard
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Micah Geisel
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2026-07-06 00:00:00.000000000 Z
10
+ date: 2026-07-12 00:00:00.000000000 Z
11
11
  dependencies:
12
- - !ruby/object:Gem::Dependency
13
- name: thor
14
- requirement: !ruby/object:Gem::Requirement
15
- requirements:
16
- - - ">="
17
- - !ruby/object:Gem::Version
18
- version: 0.19.0
19
- type: :runtime
20
- prerelease: false
21
- version_requirements: !ruby/object:Gem::Requirement
22
- requirements:
23
- - - ">="
24
- - !ruby/object:Gem::Version
25
- version: 0.19.0
26
- - !ruby/object:Gem::Dependency
27
- name: rvm
28
- requirement: !ruby/object:Gem::Requirement
29
- requirements:
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: '0'
33
- type: :runtime
34
- prerelease: false
35
- version_requirements: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: '0'
40
- - !ruby/object:Gem::Dependency
41
- name: rbnacl
42
- requirement: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: '0'
47
- type: :runtime
48
- prerelease: false
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- - !ruby/object:Gem::Dependency
55
- name: base64
56
- requirement: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: '0'
61
- type: :runtime
62
- prerelease: false
63
- version_requirements: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: '0'
68
12
  - !ruby/object:Gem::Dependency
69
13
  name: rake
70
14
  requirement: !ruby/object:Gem::Requirement
@@ -107,52 +51,9 @@ dependencies:
107
51
  - - ">="
108
52
  - !ruby/object:Gem::Version
109
53
  version: '0'
110
- - !ruby/object:Gem::Dependency
111
- name: cucumber
112
- requirement: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - ">="
115
- - !ruby/object:Gem::Version
116
- version: '0'
117
- type: :development
118
- prerelease: false
119
- version_requirements: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: '0'
124
- - !ruby/object:Gem::Dependency
125
- name: testcontainers
126
- requirement: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - ">="
129
- - !ruby/object:Gem::Version
130
- version: '0'
131
- type: :development
132
- prerelease: false
133
- version_requirements: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - ">="
136
- - !ruby/object:Gem::Version
137
- version: '0'
138
- - !ruby/object:Gem::Dependency
139
- name: ostruct
140
- requirement: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - ">="
143
- - !ruby/object:Gem::Version
144
- version: '0'
145
- type: :development
146
- prerelease: false
147
- version_requirements: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - ">="
150
- - !ruby/object:Gem::Version
151
- version: '0'
152
54
  email:
153
55
  - micah@botandrose.com
154
- executables:
155
- - bard
56
+ executables: []
156
57
  extensions: []
157
58
  extra_rdoc_files: []
158
59
  files:
@@ -160,108 +61,27 @@ files:
160
61
  - ".gitignore"
161
62
  - ".gitmodules"
162
63
  - ".rspec"
163
- - ARCHITECTURE.md
164
64
  - CLAUDE.md
165
- - CUSTOM_STRATEGIES.md
166
65
  - Gemfile
167
66
  - LICENSE
168
- - MIGRATION_GUIDE.md
169
- - PLUGINS.md
170
67
  - README.md
171
68
  - Rakefile
172
69
  - bard.gemspec
173
- - bin/bard
174
70
  - bin/setup
175
71
  - cucumber.yml
176
- - features/ci.feature
177
- - features/data.feature
178
- - features/deploy.feature
179
- - features/deploy_git_workflow.feature
180
- - features/run.feature
181
- - features/step_definitions/bard_steps.rb
182
- - features/support/bard-coverage
183
- - features/support/env.rb
184
- - features/support/test_server.rb
185
72
  - lib/bard.rb
186
- - lib/bard/cli.rb
187
- - lib/bard/command.rb
188
73
  - lib/bard/config.rb
189
- - lib/bard/copy.rb
190
- - lib/bard/plugins/data.rb
191
- - lib/bard/plugins/deploy.rb
192
- - lib/bard/plugins/deploy/ci.rb
193
- - lib/bard/plugins/deploy/ci/github_actions.rb
194
- - lib/bard/plugins/deploy/ci/jenkins.rb
195
- - lib/bard/plugins/deploy/ci/local.rb
196
- - lib/bard/plugins/deploy/ci/runner.rb
197
- - lib/bard/plugins/deploy/ci/state.rb
198
- - lib/bard/plugins/deploy/ssh_strategy.rb
199
- - lib/bard/plugins/deploy/strategy.rb
200
- - lib/bard/plugins/git.rb
201
- - lib/bard/plugins/github.rb
202
- - lib/bard/plugins/github_pages.rb
203
- - lib/bard/plugins/github_pages/strategy.rb
204
- - lib/bard/plugins/hurt.rb
205
- - lib/bard/plugins/install.rb
206
- - lib/bard/plugins/install/.github/dependabot.yml
207
- - lib/bard/plugins/install/.github/workflows/cache-ci.yml
208
- - lib/bard/plugins/install/.github/workflows/ci.yml
209
- - lib/bard/plugins/install/apt_dependencies.rb
210
- - lib/bard/plugins/install/ci
211
- - lib/bard/plugins/install/setup
212
- - lib/bard/plugins/install/specified_bundler.rb
213
- - lib/bard/plugins/install/specified_ruby.rb
214
- - lib/bard/plugins/open.rb
215
- - lib/bard/plugins/ping.rb
216
- - lib/bard/plugins/ping/check.rb
74
+ - lib/bard/plugins/deploy_url/target_methods.rb
217
75
  - lib/bard/plugins/ping/target_methods.rb
218
- - lib/bard/plugins/run.rb
219
- - lib/bard/plugins/setup.rb
220
- - lib/bard/plugins/ssh.rb
221
76
  - lib/bard/plugins/ssh/connection.rb
222
- - lib/bard/plugins/ssh/copy.rb
223
77
  - lib/bard/plugins/ssh/server.rb
224
78
  - lib/bard/plugins/ssh/target_methods.rb
225
79
  - lib/bard/plugins/url.rb
226
80
  - lib/bard/plugins/url/target_methods.rb
227
- - lib/bard/plugins/vim.rb
228
- - lib/bard/retryable.rb
229
- - lib/bard/secrets.rb
230
81
  - lib/bard/target.rb
231
82
  - lib/bard/version.rb
232
- - spec/acceptance/.gitignore
233
- - spec/acceptance/docker/Dockerfile
234
- - spec/acceptance/docker/test_key
235
- - spec/acceptance/docker/test_key.pub
236
83
  - spec/bard/capability_spec.rb
237
- - spec/bard/ci/github_actions_spec.rb
238
- - spec/bard/ci/jenkins_spec.rb
239
- - spec/bard/ci/runner_spec.rb
240
- - spec/bard/ci_spec.rb
241
- - spec/bard/cli/ci_spec.rb
242
- - spec/bard/cli/data_spec.rb
243
- - spec/bard/cli/deploy_spec.rb
244
- - spec/bard/cli/hurt_spec.rb
245
- - spec/bard/cli/install_spec.rb
246
- - spec/bard/cli/master_key_spec.rb
247
- - spec/bard/cli/open_spec.rb
248
- - spec/bard/cli/ping_spec.rb
249
- - spec/bard/cli/run_spec.rb
250
- - spec/bard/cli/setup_spec.rb
251
- - spec/bard/cli/ssh_spec.rb
252
- - spec/bard/cli/stage_spec.rb
253
- - spec/bard/cli/vim_spec.rb
254
- - spec/bard/command_spec.rb
255
84
  - spec/bard/config_spec.rb
256
- - spec/bard/copy_spec.rb
257
- - spec/bard/deploy_strategy/github_pages_spec.rb
258
- - spec/bard/deploy_strategy/ssh_spec.rb
259
- - spec/bard/deploy_strategy_spec.rb
260
- - spec/bard/dynamic_dsl_spec.rb
261
- - spec/bard/git_spec.rb
262
- - spec/bard/github_spec.rb
263
- - spec/bard/ping_spec.rb
264
- - spec/bard/ssh_copy_spec.rb
265
85
  - spec/bard/ssh_server_spec.rb
266
86
  - spec/bard/target_spec.rb
267
87
  - spec/bard_spec.rb
@@ -288,50 +108,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
288
108
  requirements: []
289
109
  rubygems_version: 3.6.2
290
110
  specification_version: 4
291
- summary: CLI to automate common development tasks.
111
+ summary: Config core for bard.
292
112
  test_files:
293
- - features/ci.feature
294
- - features/data.feature
295
- - features/deploy.feature
296
- - features/deploy_git_workflow.feature
297
- - features/run.feature
298
- - features/step_definitions/bard_steps.rb
299
- - features/support/bard-coverage
300
- - features/support/env.rb
301
- - features/support/test_server.rb
302
- - spec/acceptance/.gitignore
303
- - spec/acceptance/docker/Dockerfile
304
- - spec/acceptance/docker/test_key
305
- - spec/acceptance/docker/test_key.pub
306
113
  - spec/bard/capability_spec.rb
307
- - spec/bard/ci/github_actions_spec.rb
308
- - spec/bard/ci/jenkins_spec.rb
309
- - spec/bard/ci/runner_spec.rb
310
- - spec/bard/ci_spec.rb
311
- - spec/bard/cli/ci_spec.rb
312
- - spec/bard/cli/data_spec.rb
313
- - spec/bard/cli/deploy_spec.rb
314
- - spec/bard/cli/hurt_spec.rb
315
- - spec/bard/cli/install_spec.rb
316
- - spec/bard/cli/master_key_spec.rb
317
- - spec/bard/cli/open_spec.rb
318
- - spec/bard/cli/ping_spec.rb
319
- - spec/bard/cli/run_spec.rb
320
- - spec/bard/cli/setup_spec.rb
321
- - spec/bard/cli/ssh_spec.rb
322
- - spec/bard/cli/stage_spec.rb
323
- - spec/bard/cli/vim_spec.rb
324
- - spec/bard/command_spec.rb
325
114
  - spec/bard/config_spec.rb
326
- - spec/bard/copy_spec.rb
327
- - spec/bard/deploy_strategy/github_pages_spec.rb
328
- - spec/bard/deploy_strategy/ssh_spec.rb
329
- - spec/bard/deploy_strategy_spec.rb
330
- - spec/bard/dynamic_dsl_spec.rb
331
- - spec/bard/git_spec.rb
332
- - spec/bard/github_spec.rb
333
- - spec/bard/ping_spec.rb
334
- - spec/bard/ssh_copy_spec.rb
335
115
  - spec/bard/ssh_server_spec.rb
336
116
  - spec/bard/target_spec.rb
337
117
  - spec/bard_spec.rb