capistrano-systemd-multiservice 0.1.0.beta6 → 0.1.0.beta11
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 +4 -4
- data/.github/dependabot.yml +13 -0
- data/.travis.yml +6 -5
- data/README.md +14 -0
- data/capistrano-systemd-multiservice.gemspec +2 -2
- data/lib/capistrano/systemd/multiservice.rb +13 -2
- data/lib/capistrano/systemd/multiservice/system_service.rb +4 -4
- data/lib/capistrano/systemd/multiservice/user_service.rb +28 -0
- data/lib/capistrano/systemd/multiservice/version.rb +1 -1
- metadata +11 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 726e8687fd294f14c8ed7195517956cc76bb10fd1e9bd8f04c15b1fd186b6f4c
|
4
|
+
data.tar.gz: d0b7b77144a8cc0d82fd41569d4675e2b9fc32bed0de06b46b884af59ac723c4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 832a682e621ef833e0e7d7df21a58743bf659e713258a2b0c6bbee96072f48f0128cdf6ab507adf32978fa268c78b474252ce86b06c8e8d1d31076e37f5e0a8d
|
7
|
+
data.tar.gz: 18ded94ca09b014d6a95d716ff6fda3656277a87fbb98125e358987381940dcee9f217aafb945356c56d5c8ae848740cfda369c66fdcf15e0d356a9b9ffbbf6b
|
data/.travis.yml
CHANGED
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")`,
|
@@ -21,8 +21,8 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
22
|
spec.require_paths = ["lib"]
|
23
23
|
|
24
|
-
spec.add_dependency "capistrano", ">= 3.7.0", "< 3.
|
25
|
-
spec.add_development_dependency "bundler"
|
24
|
+
spec.add_dependency "capistrano", ">= 3.7.0", "< 3.16.0"
|
25
|
+
spec.add_development_dependency "bundler"
|
26
26
|
spec.add_development_dependency "rake"
|
27
27
|
spec.add_development_dependency "rspec", "~> 3.0"
|
28
28
|
spec.add_development_dependency "mocha", "~> 1.2"
|
@@ -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
|
-
|
8
|
-
|
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
|
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.
|
4
|
+
version: 0.1.0.beta11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- YAMADA Tsuyoshi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capistrano
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: 3.7.0
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 3.
|
22
|
+
version: 3.16.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,21 +29,21 @@ dependencies:
|
|
29
29
|
version: 3.7.0
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 3.
|
32
|
+
version: 3.16.0
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: bundler
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- - "
|
37
|
+
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '
|
39
|
+
version: '0'
|
40
40
|
type: :development
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
|
-
- - "
|
44
|
+
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '
|
46
|
+
version: '0'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -93,6 +93,7 @@ executables: []
|
|
93
93
|
extensions: []
|
94
94
|
extra_rdoc_files: []
|
95
95
|
files:
|
96
|
+
- ".github/dependabot.yml"
|
96
97
|
- ".gitignore"
|
97
98
|
- ".rspec"
|
98
99
|
- ".travis.yml"
|
@@ -105,6 +106,7 @@ files:
|
|
105
106
|
- capistrano-systemd-multiservice.gemspec
|
106
107
|
- lib/capistrano/systemd/multiservice.rb
|
107
108
|
- lib/capistrano/systemd/multiservice/system_service.rb
|
109
|
+
- lib/capistrano/systemd/multiservice/user_service.rb
|
108
110
|
- lib/capistrano/systemd/multiservice/version.rb
|
109
111
|
- lib/capistrano/tasks/systemd/multiservice/system_service.rake
|
110
112
|
homepage: https://github.com/groovenauts/capistrano-systemd-multiservice
|
@@ -126,8 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
126
128
|
- !ruby/object:Gem::Version
|
127
129
|
version: 1.3.1
|
128
130
|
requirements: []
|
129
|
-
|
130
|
-
rubygems_version: 2.7.6
|
131
|
+
rubygems_version: 3.2.9
|
131
132
|
signing_key:
|
132
133
|
specification_version: 4
|
133
134
|
summary: Capistrano Plugin to control services by systemd
|