capistrano-systemd-multiservice 0.1.0.beta6 → 0.1.0.beta7

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: 2047d118d3aa56c85a22f1a77c68d26e735e5d9c082393b2a460a6718047f26d
4
- data.tar.gz: 3652b1dd931ad5207dd404934224671a6cadfa2b231f9c7865652fb3b709af45
3
+ metadata.gz: d87bd65e266039237728db3acbb868d1025178754075fcabca743a200f451951
4
+ data.tar.gz: fdb1a701734aa0b50d71b7b8b76354f9474377e58c99778b68a3a54a5d313b70
5
5
  SHA512:
6
- metadata.gz: ec6a1ea1067b9b55667a105b03631e32f6e227729dad674822fb45d9c828db4c133d4cb9c52de7f7f1e498b007a37081b189d862c6b6f53bcc08f597dc389592
7
- data.tar.gz: ff2e0e40974270950668461097a0a00bf022079c2fc940f20c7fe7263b6f238a2d00072bc6ca0b0d83dbc4127303cddd3fa9c63ca27a5013478c3441cfcb4e4c
6
+ metadata.gz: 78e256f02d99a5438bd08323cd77d0e9c93712e3682ec58a956dbf41bec6400770606881ebf96b84f2467864dae84c67365bcdf2e75a744c254919cbe8c11630
7
+ data.tar.gz: 19193bc630872b81e359625438aa9abb1c4a86d57aaa23cb4808dd774e8d009292a41579fc1864ed5d3b7bbb4f7b5f7592c849e2ec95dc1e15fe4d523bbd39f1
data/README.md CHANGED
@@ -68,6 +68,20 @@ cap STAGE systemd:example1:setup systemd:example2:setup
68
68
  cap STAGE deploy
69
69
  ```
70
70
 
71
+ ### User services
72
+
73
+ To have the service installed under your own user rather than root
74
+
75
+ ```ruby
76
+ require "capistrano/systemd/multiservice"
77
+ install_plugin Capistrano::Systemd::MultiService.new_service("example1", service_type: 'user')
78
+ install_plugin Capistrano::Systemd::MultiService.new_service("example2", service_type: 'user')
79
+ ```
80
+
81
+ If using the user service type services will be installed in your users home directory under ``` /.config/systemd/user ```.
82
+ Systemd commands on those services can be run by passing a `--user` flag, e.g. ```systemctl --user list-unit-files```
83
+ Nothing else in setup should require change and Capistrano tasks should remain the same as when installing system services.
84
+
71
85
  ## Capistrano Tasks
72
86
 
73
87
  With `install_plugin Capistrano::Systemd::MultiService.new_service("example1")`,
@@ -1,11 +1,22 @@
1
1
  require "capistrano/systemd/multiservice/version"
2
2
  require "capistrano/systemd/multiservice/system_service"
3
+ require "capistrano/systemd/multiservice/user_service"
3
4
 
4
5
  module Capistrano
5
6
  module Systemd
6
7
  module MultiService
7
- def self.new_service(app)
8
- SystemService.new(app)
8
+ SERVICE_TYPES = %w[system user].freeze
9
+
10
+ class ServiceTypeError < RuntimeError; end
11
+
12
+ def self.new_service(app, service_type: 'system')
13
+ service_type = service_type.to_s
14
+ unless SERVICE_TYPES.include?(service_type)
15
+ raise ServiceTypeError,
16
+ "Service type has to be one of #{SERVICE_TYPES}"
17
+ end
18
+
19
+ const_get("#{service_type.capitalize}Service").new(app)
9
20
  end
10
21
  end
11
22
  end
@@ -71,6 +71,10 @@ module Capistrano
71
71
  }
72
72
  end
73
73
 
74
+ def default_units_dir
75
+ "/etc/systemd/system"
76
+ end
77
+
74
78
  def setup
75
79
  fetch(:"#{prefix}_units_src").zip(fetch(:"#{prefix}_units_dest")).each do |src, dest|
76
80
  buf = StringIO.new(ERB.new(File.read(src), nil, 2).result(binding))
@@ -106,10 +110,6 @@ module Capistrano
106
110
  backend.execute(*args)
107
111
  end
108
112
 
109
- def default_units_dir
110
- "/etc/systemd/system"
111
- end
112
-
113
113
  private
114
114
 
115
115
  def setup_service(buf, src, dest)
@@ -0,0 +1,28 @@
1
+ require_relative './system_service'
2
+
3
+ module Capistrano
4
+ module Systemd
5
+ module MultiService
6
+ class UserService < SystemService
7
+ def systemctl(*args)
8
+ args.unshift :systemctl, '--user'
9
+ backend.execute(*args)
10
+ end
11
+
12
+ def remove
13
+ backend.execute :rm, '-f', '--', fetch(:"#{prefix}_units_dest")
14
+ end
15
+
16
+ def default_units_dir
17
+ "/home/#{fetch(:user)}/.config/systemd/user"
18
+ end
19
+
20
+ protected
21
+
22
+ def setup_service(buf, src, dest)
23
+ backend.upload! buf, dest
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -1,7 +1,7 @@
1
1
  module Capistrano
2
2
  module Systemd
3
3
  module MultiService
4
- VERSION = "0.1.0.beta6"
4
+ VERSION = "0.1.0.beta7"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-systemd-multiservice
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.beta6
4
+ version: 0.1.0.beta7
5
5
  platform: ruby
6
6
  authors:
7
7
  - YAMADA Tsuyoshi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-06-19 00:00:00.000000000 Z
11
+ date: 2018-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capistrano
@@ -105,6 +105,7 @@ files:
105
105
  - capistrano-systemd-multiservice.gemspec
106
106
  - lib/capistrano/systemd/multiservice.rb
107
107
  - lib/capistrano/systemd/multiservice/system_service.rb
108
+ - lib/capistrano/systemd/multiservice/user_service.rb
108
109
  - lib/capistrano/systemd/multiservice/version.rb
109
110
  - lib/capistrano/tasks/systemd/multiservice/system_service.rake
110
111
  homepage: https://github.com/groovenauts/capistrano-systemd-multiservice