danarchy_deploy 0.2.11 → 0.2.13

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e323bccc146729696cefbbe7783e779ccfee0c3e2f58c73149c64862dd1f1c95
4
- data.tar.gz: 45602e1b2852556ab4cb48324af4b8bb25e580aca57646a006df08f20841d495
3
+ metadata.gz: 61637129e8f6974c029b38504bfc513e3284d4d5eef6dc54fa5e24cdf45709d1
4
+ data.tar.gz: 80ea5ff429b1ae44d3eb6aef9d7dea0cecac5fc717fcd3cd8bc0125c8e54788a
5
5
  SHA512:
6
- metadata.gz: 76aca576a0734fbed266ea5c14070276019c73aa3e4d9671fde21eacd1362cd23cae7faa17df62132d3cdccf0b61f25994163b35b97e88978e79cd7c0003cb20
7
- data.tar.gz: 43a9f174a9e1048546c17a6a8b88dbc6940d419fa087a1e3acb3d1aaf88c98fb3b1d2e6eb2bf60037ce070825fb7581fc1d907169cf1d2ce14e3dc0bb7bb64fa
6
+ metadata.gz: 337fde118724af946077e866fce15a6892cde02f99d46bcfaa9d1535d6ddca450cc2aefb54e2275d71e0b848cf8b562012d5ef1b03be903abfc5483f8159576c
7
+ data.tar.gz: '0868e979870026c5525318b5ccf06dadde9a3ae2b1e52fb2cbba238b1b18d56c5e7e84418abe2ef0bc617f0ff77e52aa4c5744142b9fde4f104345b1f2c592f4'
data/.asdf_versions.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "ruby": [
3
- "latest:3.2.2"
3
+ "latest:3.2.4"
4
4
  ]
5
5
  }
data/.tool-versions CHANGED
@@ -1 +1 @@
1
- ruby 3.2.2
1
+ ruby 3.2.4
data/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ patch_0.2.13
2
+ - Pid class to return LocalDeploy if already running
3
+ - remote_LocalDeploy parse options dynamically
4
+ - portage_sync: log eclean output
5
+ - fix @runlevel in init/openrc.rb
6
+ - update builtin::portage/make.conf.erb with variable parsing
7
+
8
+ patch_0.2.12
9
+ - Rename bin/console
10
+ - Change emerge --sync cron to /etc/cron.daily/
11
+ - Init::OpenRC: cleanup service in wrong runlevels
12
+ - add skip_install option
13
+
1
14
  patch_0.2.11
2
15
  - gentoo: fix portage cron permissions
3
16
  - restructure bin/exe dirs, update gemspec
data/README.md CHANGED
@@ -40,8 +40,7 @@ Usage: sudo bin/danarchy_deploy (local|remote) --json /path/to/deployment.json [
40
40
  --dev-gem Build dAnarchy_deploy gem locally and push to target host in RemoteDeploy.
41
41
  --ssh-verbose Verbose SSH stdout/stderr output.
42
42
  --vars-verbose Verbose template variable output.
43
+ --skip-install Skip package installation and updates.
43
44
  --version Print bin/danarchy_deploy version.
44
45
  -h, --help Print this help info.
45
46
  ```
46
-
47
- More documentation incoming...
data/exe/danarchy_deploy CHANGED
@@ -4,13 +4,16 @@ require 'danarchy_couchdb'
4
4
  require 'optparse'
5
5
 
6
6
  deployment = nil
7
- options = { couchdb: "#{ENV['HOME']}/.danarchy/danarchy_deploy/danarchy_couchdb.json",
8
- deploy_dir: '/danarchy/deploy',
9
- deploy_file: nil,
10
- first_run: false,
11
- pretend: false,
12
- ssh_verbose: false,
13
- vars_verbose: false }
7
+ options = {
8
+ couchdb: "#{ENV['HOME']}/.danarchy/danarchy_deploy/danarchy_couchdb.json",
9
+ deploy_dir: '/danarchy/deploy',
10
+ deploy_file: nil,
11
+ first_run: false,
12
+ pretend: false,
13
+ ssh_verbose: false,
14
+ vars_verbose: false,
15
+ skip_install: false
16
+ }
14
17
 
15
18
  ARGV.push('--help') if ARGV.empty?
16
19
  optparse = OptionParser.new do |opts|
@@ -53,6 +56,10 @@ optparse = OptionParser.new do |opts|
53
56
  options[:vars_verbose] = true
54
57
  end
55
58
 
59
+ opts.on('--skip-install', "Skip package installation and updates.") do |val|
60
+ options[:skip_install] = true
61
+ end
62
+
56
63
  opts.on('--version', "Print #{$PROGRAM_NAME} version.") do |val|
57
64
  puts "DanarchyDeploy: #{DanarchyDeploy::VERSION}"
58
65
  exit 1
@@ -101,7 +108,7 @@ elsif location == 'local'
101
108
  puts ' ! Ctrl-c out if this is not what you want to do!'
102
109
  10.downto(0) do |i|
103
110
  trap('SIGINT') { abort("\nExiting!") }
104
- print "\rDeploying in #{i} seconds"
111
+ print "\rDeploying in #{i} seconds. "
105
112
  sleep(1)
106
113
  end
107
114
 
@@ -0,0 +1,38 @@
1
+ module DanarchyDeploy
2
+ class Pid
3
+ attr_reader :pid
4
+ attr_reader :locked
5
+ attr_reader :message
6
+
7
+ def initialize
8
+ @pidfile = '/var/run/danarchy_deploy.pid'
9
+ @pid = File.exist?(@pidfile) ? File.read(@pidfile).chomp.to_i : nil
10
+ @locked = false
11
+
12
+ if @pid
13
+ begin
14
+ Process.getpgid(@pid)
15
+ @locked = true
16
+ @message = "dAnarchy Deploy is already running as PID: #{@pid}"
17
+ rescue Errno::ESRCH => e
18
+ @locked = false
19
+ @message = "dAnarchy Deploy is not currently running."
20
+ end
21
+ end
22
+
23
+ if @locked == false
24
+ @pid = Process.pid
25
+ @locked = false
26
+ @message = "dAnarchy Deploy has started as PID: #{@pid}"
27
+ File.write(@pidfile, @pid)
28
+ end
29
+ end
30
+
31
+ def cleanup
32
+ File.delete(@pidfile)
33
+ @pid = nil
34
+ @locked = false
35
+ @message = "dAnarchy Deploy has completed. Cleaning up PID"
36
+ end
37
+ end
38
+ end
@@ -3,10 +3,11 @@ module DanarchyDeploy
3
3
  module Services
4
4
  class Init
5
5
  class Openrc
6
- def initialize(service, runlevel, options)
6
+ def initialize(service, runlevel='default', options)
7
7
  @service = service
8
8
  @runlevel = runlevel
9
9
  @options = options
10
+ cleanup_runlevels
10
11
  end
11
12
 
12
13
  def status
@@ -64,10 +65,19 @@ module DanarchyDeploy
64
65
  end
65
66
 
66
67
  def disable
67
- Dir["/etc/runlevels/*/#{@service}"].each do |svc|
68
- runlevel, service = svc.split('/')[3,4]
69
- cmd = "rc-update del #{service} #{runlevel}"
70
- DanarchyDeploy::Helpers.run_command(cmd, @options)
68
+ cmd = "rc-update del #{@service} #{@runlevel}"
69
+ DanarchyDeploy::Helpers.run_command(cmd, @options)
70
+ end
71
+
72
+ private
73
+ def cleanup_runlevels
74
+ Dir["/etc/runlevels/*/#{@service}"].each do |dir|
75
+ runlevel = File.basename(File.dirname(dir))
76
+ if runlevel != @runlevel
77
+ puts " |> Removing #{@service} from wrong runlevel: #{runlevel}"
78
+ cmd = "rc-update del #{@service} #{runlevel}"
79
+ DanarchyDeploy::Helpers.run_command(cmd, @options)
80
+ end
71
81
  end
72
82
  end
73
83
  end
@@ -47,8 +47,8 @@ module DanarchyDeploy
47
47
  abort(" ! Failed to run mkfs: #{mkfs[:stderr]}") if mkfs[:stderr]
48
48
  end
49
49
 
50
- FileUtils.mkdir_p(mount[:mountpoint]) if !options[:pretend] &&
51
- !Dir.exist?(mount[:mountpoint])
50
+ FileUtils.mkdir_p(mount[:mountpoint]) unless options[:pretend] &&
51
+ Dir.exist?(mount[:mountpoint])
52
52
  end
53
53
  end
54
54
 
@@ -48,7 +48,7 @@ module DanarchyDeploy
48
48
  puts " |> Continuing with emerge!"
49
49
  end
50
50
 
51
- def self.emerge_sync(sync, options)
51
+ def self.emerge_sync(sync=false, options)
52
52
  puts "\n > Gentoo Emerge Sync"
53
53
  if sync.nil?
54
54
  install_sync_cron(sync, options)
@@ -65,7 +65,7 @@ module DanarchyDeploy
65
65
  DanarchyDeploy::Helpers.run_command("rm -rf #{@repo_path}/.tmp-unverified-download-quarantine", options)
66
66
  end
67
67
  end
68
- elsif sync =~ /([0-9]{1,2}|\*|\@[a-z]{4,7})/i
68
+ elsif sync =~ /(cron|schedule)/i
69
69
  install_sync_cron(sync, options)
70
70
  else
71
71
  puts "\n ! Unknown sync cron time: #{sync}. Not running emerge sync!"
@@ -88,41 +88,21 @@ module DanarchyDeploy
88
88
  'id portage | grep cron >/dev/null && usermod -r -G cron portage',
89
89
  options)
90
90
 
91
- templates.push({ target: '/var/spool/cron/crontabs/portage',
91
+ templates.push({ target: '/etc/cron.daily/portage_sync.sh',
92
92
  remove: true })
93
93
  else
94
94
  DanarchyDeploy::Helpers.run_command(
95
95
  'id portage | grep cron >/dev/null || usermod -a -G cron portage',
96
96
  options)
97
97
 
98
- # User must be a member of the 'cron' group.
99
- # User's actual crontab file is chown'd as ${user}:crontab
100
- templates.push({ source: 'builtin::system/crontab.erb',
101
- target: '/var/spool/cron/crontabs/portage',
98
+ templates.push({ source: 'builtin::portage/portage_sync.sh',
99
+ target: '/etc/cron.daily/portage_sync.sh',
102
100
  file_perms: {
103
- owner: 'portage',
104
- group: 'crontab',
105
- mode: '0600'
106
- },
107
- variables: {
108
- shell: '/bin/bash',
109
- path: '/usr/local/sbin:/usr/local/bin:/usr/bin',
110
- env: '',
111
- jobs: [
112
- {
113
- schedule: sync,
114
- command: 'emerge --sync &>/var/log/emerge-sync.log'
115
- },
116
- {
117
- schedule: '@daily',
118
- command: 'eclean-dist &>/dev/null'
119
- },
120
- {
121
- schedule: '@daily',
122
- command: 'eclean-pkg &>/dev/null'
123
- }
124
- ]
125
- } })
101
+ owner: 'root',
102
+ group: 'root',
103
+ mode: '0740'
104
+ }
105
+ })
126
106
  end
127
107
 
128
108
  DanarchyDeploy::Templater.new(templates, options)
@@ -15,6 +15,11 @@ module DanarchyDeploy
15
15
  installer, updater, cleaner = prep_operating_system(deployment, options)
16
16
  install_result, updater_result = nil, nil
17
17
 
18
+ if options[:skip_install]
19
+ puts "\n > Skipping package installation due to --skip-install"
20
+ return deployment
21
+ end
22
+
18
23
  puts "\n > Package Installation"
19
24
  if [true, 'all', 'selected', nil].include?(deployment[:system][:update]) &&
20
25
  deployment[:packages].any?
@@ -87,23 +92,5 @@ module DanarchyDeploy
87
92
 
88
93
  [installer, updater, cleaner]
89
94
  end
90
-
91
- def self.fstab_mount(deployment, options)
92
- fstab = deployment[:system][:templates].collect { |t| t if t[:target] == '/etc/fstab' }.compact
93
- fstab.each do |t|
94
- t[:variables].each do |v|
95
- if !Dir.exist?(v[:mountpoint])
96
- puts "Creating mountpoint: #{v[:mountpoint]}"
97
- FileUtils.mkdir_p(v[:mountpoint]) if !options[:pretend]
98
- end
99
- end
100
- end
101
-
102
- puts "\n > Mounting Filesystems"
103
- if !options[:pretend]
104
- mount_result = DanarchyDeploy::Helpers.run_command('mount -a', options)
105
- abort(' |! Failed to mount filesystems!') if mount_result[:stderr]
106
- end
107
- end
108
95
  end
109
96
  end
@@ -1,3 +1,3 @@
1
1
  module DanarchyDeploy
2
- VERSION = "0.2.11"
2
+ VERSION = "0.2.13"
3
3
  end
@@ -4,6 +4,7 @@ module DanarchyDeploy
4
4
  require_relative 'danarchy_deploy/groups'
5
5
  require_relative 'danarchy_deploy/hash_deep_merge'
6
6
  require_relative 'danarchy_deploy/helpers'
7
+ require_relative 'danarchy_deploy/pid'
7
8
  require_relative 'danarchy_deploy/services'
8
9
  require_relative 'danarchy_deploy/system'
9
10
  require_relative 'danarchy_deploy/templater'
@@ -14,8 +15,15 @@ module DanarchyDeploy
14
15
  class LocalDeploy
15
16
  def self.new(deployment, options)
16
17
  puts "\n" + self.name
18
+
19
+ pid = Pid.new
20
+ puts pid.message
21
+ if pid.locked
22
+ return deployment
23
+ end
24
+
17
25
  puts "Pretend run! Not making any changes." if options[:pretend]
18
-
26
+
19
27
  puts 'Begining Deployment:'
20
28
  printf("%12s %0s\n", 'Hostname:', deployment[:hostname])
21
29
  printf("%12s %0s\n", 'OS:', deployment[:os])
@@ -36,6 +44,8 @@ module DanarchyDeploy
36
44
  File.write(options[:deploy_file], deployment.to_yaml)
37
45
  end
38
46
 
47
+ pid.cleanup
48
+ puts pid.message
39
49
  deployment
40
50
  end
41
51
  end
@@ -159,7 +169,7 @@ module DanarchyDeploy
159
169
  gem_dir = File.expand_path('../../', __FILE__)
160
170
 
161
171
  abort('ERROR: Need to be in development gem directory for --dev-gem!') if Dir.pwd != gem_dir
162
-
172
+
163
173
  gem_path = "#{gem_dir}/pkg/#{gem}"
164
174
  build_cmd = "cd #{gem_dir} && git add . && rake build"
165
175
  build_result = DanarchyDeploy::Helpers.run_command(build_cmd, options)
@@ -183,7 +193,7 @@ module DanarchyDeploy
183
193
  else
184
194
  puts ' |+ Gem pushed!'
185
195
  end
186
-
196
+
187
197
  puts "\n > Installing gem: #{gem} on #{connector[:hostname]}"
188
198
  install_cmd = _ssh_command(connector, "sudo -i gem install --bindir /usr/local/bin -f #{options[:deploy_dir]}/#{File.basename(gem)}")
189
199
  install_result = DanarchyDeploy::Helpers.run_command(install_cmd, options)
@@ -204,14 +214,16 @@ module DanarchyDeploy
204
214
 
205
215
  def self.push_templates(connector, options)
206
216
  template_dir = options[:deploy_dir] + '/templates'
207
- puts "\n > Pushing templates: #{template_dir}"
208
- push_cmd = _rsync_push(connector, template_dir, template_dir)
209
- push_result = DanarchyDeploy::Helpers.run_command(push_cmd, options)
210
-
211
- if push_result[:stderr]
212
- abort(' ! Templates push failed!')
213
- else
214
- puts " |+ Templates pushed to '#{template_dir}'!"
217
+ if Dir.exist?(template_dir)
218
+ puts "\n > Pushing templates: #{template_dir}"
219
+ push_cmd = _rsync_push(connector, template_dir, template_dir)
220
+ push_result = DanarchyDeploy::Helpers.run_command(push_cmd, options)
221
+
222
+ if push_result[:stderr]
223
+ abort(' ! Templates push failed!')
224
+ else
225
+ puts " |+ Templates pushed to '#{template_dir}'!"
226
+ end
215
227
  end
216
228
  end
217
229
 
@@ -231,15 +243,23 @@ module DanarchyDeploy
231
243
  puts "\n > Running LocalDeploy on #{connector[:hostname]}.\n\n"
232
244
 
233
245
  deploy_cmd = "sudo -i #{gem_binary} local "
234
- deploy_cmd += '--first-run ' if options[:first_run]
235
- deploy_cmd += '--ssh-verbose ' if options[:ssh_verbose]
236
- deploy_cmd += '--vars-verbose ' if options[:vars_verbose]
237
- deploy_cmd += '--pretend ' if options[:pretend]
238
- deploy_cmd += '--json ' if options[:deploy_file].end_with?('.json')
239
- deploy_cmd += '--yaml ' if options[:deploy_file].end_with?('.yaml')
240
- deploy_cmd += options[:deploy_file]
241
-
242
- deploy_command = _ssh_command(connector, deploy_cmd)
246
+ opts = Array.new
247
+ options.each do |k,v|
248
+ next if [:couchdb, :dev_gem, :deploy_dir].include?(k)
249
+ if k == :deploy_file
250
+ if v.end_with?('.json')
251
+ opts.insert(-1, '--json ' + v)
252
+ elsif v.end_with?('.yaml')
253
+ opts.insert(-1, '--yaml ' + v)
254
+ else
255
+ abort(" ! Unknown deploy_file type: #{v}")
256
+ end
257
+ elsif v == true
258
+ opts.insert(0, '--' + k.to_s.gsub('_', '-'))
259
+ end
260
+ end
261
+
262
+ deploy_command = _ssh_command(connector, deploy_cmd + opts.join(' '))
243
263
  system(deploy_command)
244
264
  end
245
265
 
@@ -247,7 +267,7 @@ module DanarchyDeploy
247
267
  puts "\n > Pulling deployment: #{options[:deploy_file]}"
248
268
  pull_cmd = _scp_pull(connector, options[:deploy_file], options[:deploy_file])
249
269
  pull_result = DanarchyDeploy::Helpers.run_command(pull_cmd, options)
250
-
270
+
251
271
  if pull_result[:stderr]
252
272
  abort(' ! Deployment pull failed!')
253
273
  else
@@ -24,7 +24,7 @@
24
24
  }
25
25
  },
26
26
  "portage": {
27
- "sync": false,
27
+ "sync": false || false || "cron || schedule",
28
28
  "templates": [
29
29
  {
30
30
  "target": "/etc/portage/make.conf",
@@ -70,9 +70,10 @@
70
70
  "services": {
71
71
  "service_name": {
72
72
  "init": {
73
- "service": [
73
+ "runlevel": "default",
74
+ "actions": [
74
75
  "enable",
75
- "restart"
76
+ "start"
76
77
  ]
77
78
  },
78
79
  "archives": [
@@ -5,20 +5,19 @@ CXXFLAGS="${COMMON_FLAGS}"
5
5
  FCFLAGS="${COMMON_FLAGS}"
6
6
  FFLAGS="${COMMON_FLAGS}"
7
7
 
8
- MAKEOPTS="-j<%= `nproc`.to_i * 2 + 1 %> -l<%= `nproc`.to_i %>"
8
+ MAKEOPTS="-j<%= @variables[:MAKEOPTS_J] ? @variables[:MAKEOPTS_J] : `nproc`.to_i + 1 %> -l<%= (`nproc`.to_f * 0.85) %>"
9
9
  CPU_FLAGS_X86="<%= `cpuid2cpuflags`.split(': ').last.chomp %>"
10
10
 
11
- <% if !@variables -%>
12
- USE="bindist logrotate"
13
- INPUT_DEVICES="evdev keyboard"
14
- <% else -%>
15
- <%= @variables[:use] ? 'USE=' + "\"bindist logrotate #{@variables[:use]}\"\n" : "USE=\"bindist logrotate\"\n" -%>
16
- <%= @variables[:grub] ? 'GRUB_PLATFORMS=' + "\"#{@variables[:grub]}\"\n" : '' -%>
17
- <%= @variables[:ruby] ? 'RUBY_TARGETS=' + "\"#{@variables[:ruby]}\"\n" : '' -%>
18
- <%= @variables[:php] ? 'PHP_TARGETS=' + "\"#{@variables[:php]}\"\n" : '' -%>
19
- <%= @variables[:features] ? 'FEATURES=' + "\"#{@variables[:features]}\"\n" : '' -%>
20
- <%= @variables[:videocards] ? 'VIDEO_CARDS=' + "\"#{@variables[:videocards]}\"\n" : '' -%>
21
- <%= @variables[:input] ? 'INPUT_DEVICES=' + "\"#{@variables[:input]}\"\n" : "INPUT_DEVICES=\"evdev keyboard\"\n" -%>
11
+ <%
12
+ defaults = {
13
+ :USE => "bindist logrotate",
14
+ :INPUT_DEVICES => "evdev keyboard"
15
+ }
16
+
17
+ variables = defaults.merge(@variables) if @variables.any?
18
+
19
+ variables.each do |k, v| -%>
20
+ <%= k.to_s + "=\"#{v}\"" %>
22
21
  <% end -%>
23
22
 
24
23
  # This sets the language of build output to English.
@@ -0,0 +1,5 @@
1
+ #!/bin/bash
2
+
3
+ /usr/bin/emerge --sync &> /var/log/emerge-sync.log
4
+ /usr/bin/eclean-dist &> /var/log/emerge-clean.log
5
+ /usr/bin/eclean-pkg &>> /var/log/emerge-clean.log
metadata CHANGED
@@ -1,57 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: danarchy_deploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.11
4
+ version: 0.2.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan James
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-12-28 00:00:00.000000000 Z
11
+ date: 2025-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: danarchy_couchdb
14
+ name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.1'
20
- type: :runtime
19
+ version: '2.6'
20
+ type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.1'
26
+ version: '2.6'
27
27
  - !ruby/object:Gem::Dependency
28
- name: bundler
28
+ name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '2.5'
33
+ version: '13.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '2.5'
40
+ version: '13.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rake
42
+ name: danarchy_couchdb
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '13.0'
48
- type: :development
47
+ version: '0.1'
48
+ type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '13.0'
54
+ version: '0.1'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: mongo
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '2.20'
69
+ - !ruby/object:Gem::Dependency
70
+ name: openssl
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.3'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.3'
69
83
  description: DanarchyDeploy intends to simplify Gentoo Linux (and other distro) deployments
70
84
  down to a single template from an input JSON or YAML file, or from a CouchDB file.
71
85
  email:
@@ -100,6 +114,7 @@ files:
100
114
  - lib/danarchy_deploy/hash_deep_merge.rb
101
115
  - lib/danarchy_deploy/helpers.rb
102
116
  - lib/danarchy_deploy/installer.rb
117
+ - lib/danarchy_deploy/pid.rb
103
118
  - lib/danarchy_deploy/services.rb
104
119
  - lib/danarchy_deploy/services/init.rb
105
120
  - lib/danarchy_deploy/services/init/openrc.rb
@@ -131,6 +146,7 @@ files:
131
146
  - templates/portage/make.conf.erb
132
147
  - templates/portage/package.use/bindist
133
148
  - templates/portage/package.use/documentation
149
+ - templates/portage/portage_sync.sh
134
150
  - templates/services/memcached/memcached.erb
135
151
  - templates/services/mysql/my.cnf.erb
136
152
  - templates/services/mysql/root_my.cnf.erb
@@ -173,7 +189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
173
189
  - !ruby/object:Gem::Version
174
190
  version: '0'
175
191
  requirements: []
176
- rubygems_version: 3.5.11
192
+ rubygems_version: 3.4.19
177
193
  signing_key:
178
194
  specification_version: 4
179
195
  summary: Pushes deployments locally or remotely based on a JSON/YAML/CouchDB template.