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

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2047d118d3aa56c85a22f1a77c68d26e735e5d9c082393b2a460a6718047f26d
4
- data.tar.gz: 3652b1dd931ad5207dd404934224671a6cadfa2b231f9c7865652fb3b709af45
3
+ metadata.gz: 726e8687fd294f14c8ed7195517956cc76bb10fd1e9bd8f04c15b1fd186b6f4c
4
+ data.tar.gz: d0b7b77144a8cc0d82fd41569d4675e2b9fc32bed0de06b46b884af59ac723c4
5
5
  SHA512:
6
- metadata.gz: ec6a1ea1067b9b55667a105b03631e32f6e227729dad674822fb45d9c828db4c133d4cb9c52de7f7f1e498b007a37081b189d862c6b6f53bcc08f597dc389592
7
- data.tar.gz: ff2e0e40974270950668461097a0a00bf022079c2fc940f20c7fe7263b6f238a2d00072bc6ca0b0d83dbc4127303cddd3fa9c63ca27a5013478c3441cfcb4e4c
6
+ metadata.gz: 832a682e621ef833e0e7d7df21a58743bf659e713258a2b0c6bbee96072f48f0128cdf6ab507adf32978fa268c78b474252ce86b06c8e8d1d31076e37f5e0a8d
7
+ data.tar.gz: 18ded94ca09b014d6a95d716ff6fda3656277a87fbb98125e358987381940dcee9f217aafb945356c56d5c8ae848740cfda369c66fdcf15e0d356a9b9ffbbf6b
@@ -0,0 +1,13 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: bundler
4
+ directory: "/"
5
+ schedule:
6
+ interval: daily
7
+ time: '10:00'
8
+ timezone: Asia/Tokyo
9
+ open-pull-requests-limit: 10
10
+ reviewers:
11
+ - minimum2scp
12
+ - nagachika
13
+ - akm
data/.travis.yml CHANGED
@@ -1,8 +1,9 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.2.9
5
- - 2.3.7
6
- - 2.4.4
7
- - 2.5.1
8
- before_install: gem install bundler -v 1.16.2
4
+ - 2.3.8
5
+ - 2.4.5
6
+ - 2.5.3
7
+ - 2.6.0
8
+ - 2.7.1
9
+ before_install: gem install bundler -v 2.1.4
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.12.0"
25
- spec.add_development_dependency "bundler", "~> 1.13"
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
- 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.beta11"
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.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: 2018-06-19 00:00:00.000000000 Z
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.12.0
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.12.0
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: '1.13'
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: '1.13'
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
- rubyforge_project:
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