postfix_admin 0.1.1 → 0.2.1
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 +5 -5
- data/.github/workflows/ruby.yml +37 -0
- data/.gitignore +2 -0
- data/.rubocop.yml +2 -0
- data/CHANGELOG.md +22 -0
- data/README.md +47 -32
- data/Rakefile +6 -0
- data/bin/console +18 -0
- data/docker-admin/Dockerfile +6 -0
- data/docker-admin/config.local.php +21 -0
- data/docker-app-2.5/Dockerfile +15 -0
- data/docker-app/Dockerfile +25 -0
- data/docker-app/docker-entrypoint.sh +5 -0
- data/docker-app/my.cnf +5 -0
- data/docker-compose.yml +46 -0
- data/docker-db/postfix.v1841.sql +383 -0
- data/{spec/postfix_test.sql → docker-db/postfix.v352.sql} +1 -28
- data/docker-db/postfix.v740.sql +269 -0
- data/{bin → exe}/postfix_admin +1 -0
- data/lib/postfix_admin.rb +1 -1
- data/lib/postfix_admin/admin.rb +62 -0
- data/lib/postfix_admin/alias.rb +65 -0
- data/lib/postfix_admin/application_record.rb +44 -0
- data/lib/postfix_admin/base.rb +120 -75
- data/lib/postfix_admin/cli.rb +173 -58
- data/lib/postfix_admin/concerns/.keep +0 -0
- data/lib/postfix_admin/concerns/dovecot_cram_md5_password.rb +30 -0
- data/lib/postfix_admin/concerns/existing_timestamp.rb +18 -0
- data/lib/postfix_admin/domain.rb +98 -0
- data/lib/postfix_admin/domain_admin.rb +8 -0
- data/lib/postfix_admin/doveadm.rb +37 -0
- data/lib/postfix_admin/log.rb +5 -0
- data/lib/postfix_admin/mail_domain.rb +9 -0
- data/lib/postfix_admin/mailbox.rb +89 -0
- data/lib/postfix_admin/models.rb +10 -170
- data/lib/postfix_admin/quota.rb +6 -0
- data/lib/postfix_admin/runner.rb +108 -36
- data/lib/postfix_admin/version.rb +1 -1
- data/postfix_admin.gemspec +22 -12
- metadata +80 -55
- data/spec/base_spec.rb +0 -235
- data/spec/cli_spec.rb +0 -286
- data/spec/models_spec.rb +0 -146
- data/spec/postfix_admin.conf +0 -5
- data/spec/runner_spec.rb +0 -194
- data/spec/spec_helper.rb +0 -159
data/lib/postfix_admin/runner.rb
CHANGED
@@ -1,54 +1,59 @@
|
|
1
1
|
require 'thor'
|
2
2
|
require 'postfix_admin'
|
3
3
|
require 'postfix_admin/cli'
|
4
|
+
require 'postfix_admin/doveadm'
|
4
5
|
|
5
6
|
module PostfixAdmin
|
6
7
|
class Runner < Thor
|
8
|
+
def self.exit_on_failure?
|
9
|
+
true
|
10
|
+
end
|
11
|
+
|
7
12
|
def initialize(*args)
|
8
13
|
super
|
9
14
|
@cli = CLI.new
|
10
15
|
end
|
11
16
|
|
12
17
|
desc "summary [example.com]", "Summarize the usage of PostfixAdmin"
|
13
|
-
def summary(domain_name=nil)
|
14
|
-
runner{ @cli.show_summary(domain_name) }
|
18
|
+
def summary(domain_name = nil)
|
19
|
+
runner { @cli.show_summary(domain_name) }
|
15
20
|
end
|
16
21
|
|
17
|
-
desc "
|
18
|
-
def
|
19
|
-
runner{
|
22
|
+
desc "schemes", "List all supported password schemes"
|
23
|
+
def schemes
|
24
|
+
runner { puts PostfixAdmin::Doveadm.schemes.join(' ') }
|
20
25
|
end
|
21
26
|
|
22
|
-
desc "
|
23
|
-
def
|
24
|
-
runner{ @cli.
|
27
|
+
desc "show [example.com | admin@example.com | user@example.com]", "Show domains or admins or mailboxes"
|
28
|
+
def show(name = nil)
|
29
|
+
runner { @cli.show(name) }
|
25
30
|
end
|
26
31
|
|
27
|
-
desc "
|
28
|
-
|
29
|
-
|
30
|
-
runner{ @cli.super_admin(user_name, options[:disable]) }
|
32
|
+
desc "setup example.com password", "Setup a domain"
|
33
|
+
def setup(domain_name, password)
|
34
|
+
runner { @cli.setup_domain(domain_name, password) }
|
31
35
|
end
|
32
36
|
|
33
37
|
desc "admin_passwd admin@example.com new_password", "Change password of admin"
|
34
38
|
def admin_passwd(user_name, password)
|
35
|
-
runner{ @cli.change_admin_password(user_name, password) }
|
39
|
+
runner { @cli.change_admin_password(user_name, password) }
|
36
40
|
end
|
37
41
|
|
38
42
|
desc "account_passwd user@example.com new_password", "Change password of account"
|
39
43
|
def account_passwd(user_name, password)
|
40
|
-
runner{ @cli.change_account_password(user_name, password) }
|
44
|
+
runner { @cli.change_account_password(user_name, password) }
|
41
45
|
end
|
42
46
|
|
43
47
|
desc "add_domain example.com", "Add a domain"
|
44
48
|
def add_domain(domain_name)
|
45
|
-
runner{ @cli.add_domain(domain_name) }
|
49
|
+
runner { @cli.add_domain(domain_name) }
|
46
50
|
end
|
47
51
|
|
48
52
|
desc "edit_domain example.com", "Edit a domain limitation"
|
49
|
-
method_option :aliases, :
|
50
|
-
method_option :mailboxes, :
|
51
|
-
method_option :maxquota, :
|
53
|
+
method_option :aliases, type: :numeric, aliases: "-a", desc: "Edit aliases limitation"
|
54
|
+
method_option :mailboxes, type: :numeric, aliases: "-m", desc: "Edit mailboxes limitation"
|
55
|
+
method_option :maxquota, type: :numeric, aliases: "-q", desc: "Edit max quota limitation"
|
56
|
+
method_option :active, type: :boolean, desc: "Update active status"
|
52
57
|
def edit_domain(domain_name)
|
53
58
|
runner do
|
54
59
|
if options.size == 0
|
@@ -62,78 +67,145 @@ module PostfixAdmin
|
|
62
67
|
|
63
68
|
desc "delete_domain example.com", "Delete a domain"
|
64
69
|
def delete_domain(domain_name)
|
65
|
-
runner{ @cli.delete_domain(domain_name) }
|
70
|
+
runner { @cli.delete_domain(domain_name) }
|
66
71
|
end
|
67
72
|
|
68
73
|
desc "delete_admin admin@example.com", "Delete an admin"
|
69
74
|
def delete_admin(user_name)
|
70
|
-
runner{ @cli.delete_admin(user_name) }
|
75
|
+
runner { @cli.delete_admin(user_name) }
|
71
76
|
end
|
72
77
|
|
73
78
|
desc "delete_account user@example.com", "Delete an account"
|
74
79
|
def delete_account(address)
|
75
|
-
runner{ @cli.delete_account(address) }
|
80
|
+
runner { @cli.delete_account(address) }
|
76
81
|
end
|
77
82
|
|
78
83
|
desc "add_account user@example.com password", "Add an account"
|
84
|
+
method_option :scheme, type: :string, aliases: "-s", desc: "password scheme"
|
85
|
+
method_option :name, type: :string, aliases: "-n", desc: "full name"
|
79
86
|
def add_account(address, password)
|
80
|
-
runner
|
87
|
+
runner do
|
88
|
+
if options[:scheme] == 'scheme'
|
89
|
+
warn "Specify password scheme"
|
90
|
+
help('add_account')
|
91
|
+
else
|
92
|
+
if options[:name] == 'name'
|
93
|
+
warn "Specify name"
|
94
|
+
help('add_account')
|
95
|
+
else
|
96
|
+
@cli.add_account(address, password, options[:scheme], options[:name])
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
81
100
|
end
|
82
101
|
|
83
102
|
desc "edit_account user@example.com", "Edit an account"
|
84
|
-
method_option :
|
103
|
+
method_option :goto, type: :string, aliases: "-g", desc: "mailboxes, addresses e-mails are delivered to"
|
104
|
+
method_option :quota, type: :numeric, aliases: "-q", desc: "quota limitation (MB)"
|
105
|
+
method_option :name, type: :string, aliases: "-n", desc: "full name"
|
106
|
+
method_option :active, type: :boolean, desc: "Update active status"
|
85
107
|
def edit_account(address)
|
86
108
|
runner do
|
87
109
|
if options.size == 0
|
88
110
|
warn "Use one or more options."
|
89
111
|
help('edit_account')
|
90
112
|
else
|
91
|
-
|
113
|
+
if options[:name] == 'name'
|
114
|
+
warn "Specify name"
|
115
|
+
help('edit_account')
|
116
|
+
else
|
117
|
+
@cli.edit_account(address, options)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
desc "edit_admin admin@example.com", "Edit an admin user"
|
124
|
+
method_option :active, type: :boolean, desc: "Update active status"
|
125
|
+
method_option :super, type: :boolean, desc: "Update super admin status"
|
126
|
+
def edit_admin(user_name)
|
127
|
+
runner do
|
128
|
+
if options.size == 0
|
129
|
+
warn "Use one or more options."
|
130
|
+
help('edit_admin')
|
131
|
+
else
|
132
|
+
@cli.edit_admin(user_name, options)
|
92
133
|
end
|
93
134
|
end
|
94
135
|
end
|
95
136
|
|
96
137
|
desc "add_admin admin@example.com password", "Add an admin user"
|
97
|
-
method_option :super, :
|
138
|
+
method_option :super, type: :boolean, aliases: "-S", desc: "register as a super admin"
|
139
|
+
method_option :scheme, type: :string, aliases: "-s", desc: "password scheme"
|
98
140
|
def add_admin(user_name, password)
|
99
|
-
runner
|
141
|
+
runner do
|
142
|
+
if options[:scheme] == 'scheme'
|
143
|
+
warn "Specify password scheme"
|
144
|
+
help('add_admin')
|
145
|
+
else
|
146
|
+
@cli.add_admin(user_name, password, options[:super], options[:scheme])
|
147
|
+
end
|
148
|
+
end
|
100
149
|
end
|
101
150
|
|
102
151
|
desc "add_admin_domain admin@example.com example.com", "Add admin_domain"
|
103
152
|
def add_admin_domain(user_name, domain_name)
|
104
|
-
runner{ @cli.add_admin_domain(user_name, domain_name) }
|
153
|
+
runner { @cli.add_admin_domain(user_name, domain_name) }
|
105
154
|
end
|
106
155
|
|
107
156
|
desc "delete_admin_domain admin@example.com example.com", "Delete admin_domain"
|
108
157
|
def delete_admin_domain(user_name, domain_name)
|
109
|
-
runner{ @cli.delete_admin_domain(user_name, domain_name) }
|
158
|
+
runner { @cli.delete_admin_domain(user_name, domain_name) }
|
110
159
|
end
|
111
160
|
|
161
|
+
desc "edit_alias alias@example.com", "Edit an alias"
|
162
|
+
method_option :goto, type: :string, aliases: "-g",
|
163
|
+
desc: "mailboxes, addresses e-mails are delivered to"
|
164
|
+
method_option :active, type: :boolean, desc: "Update active status"
|
165
|
+
def edit_alias(address)
|
166
|
+
runner do
|
167
|
+
if options.size == 0
|
168
|
+
warn "Use one or more options."
|
169
|
+
help('edit_alias')
|
170
|
+
else
|
171
|
+
@cli.edit_alias(address, options)
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
112
175
|
|
113
176
|
desc "add_alias alias@example.com goto@example.net", "Add an alias"
|
114
177
|
def add_alias(address, goto)
|
115
|
-
runner{ @cli.add_alias(address, goto) }
|
178
|
+
runner { @cli.add_alias(address, goto) }
|
116
179
|
end
|
117
180
|
|
118
181
|
desc "delete_alias alias@example.com", "Delete an alias"
|
119
182
|
def delete_alias(address)
|
120
|
-
runner{ @cli.delete_alias(address) }
|
183
|
+
runner { @cli.delete_alias(address) }
|
184
|
+
end
|
185
|
+
|
186
|
+
desc "log", "Show action logs"
|
187
|
+
def log
|
188
|
+
runner { @cli.log }
|
189
|
+
end
|
190
|
+
|
191
|
+
desc "dump", "Dump all data"
|
192
|
+
def dump
|
193
|
+
runner { @cli.dump }
|
121
194
|
end
|
122
195
|
|
123
196
|
desc "version", "Show postfix_admin version"
|
124
197
|
def version
|
125
198
|
require 'postfix_admin/version'
|
126
|
-
runner{ say "postfix_admin #{VERSION}" }
|
199
|
+
runner { say "postfix_admin #{VERSION}" }
|
127
200
|
end
|
128
201
|
|
129
202
|
private
|
130
203
|
|
131
204
|
def runner
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
end
|
205
|
+
@cli.db_setup
|
206
|
+
yield
|
207
|
+
rescue StandardError => e
|
208
|
+
abort "Error: #{e.message}"
|
137
209
|
end
|
138
210
|
end
|
139
211
|
end
|
data/postfix_admin.gemspec
CHANGED
@@ -1,23 +1,33 @@
|
|
1
1
|
require File.expand_path('../lib/postfix_admin/version', __FILE__)
|
2
2
|
|
3
3
|
Gem::Specification.new do |gem|
|
4
|
-
gem.
|
5
|
-
gem.
|
6
|
-
gem.add_dependency 'do_mysql', '>= 0.10.9'
|
7
|
-
gem.add_dependency 'dm-mysql-adapter'
|
8
|
-
gem.add_development_dependency 'rspec', '~> 2.11.0'
|
9
|
-
gem.add_development_dependency 'dm-sqlite-adapter'
|
10
|
-
|
4
|
+
gem.name = "postfix_admin"
|
5
|
+
gem.version = PostfixAdmin::VERSION
|
11
6
|
gem.authors = ["Hitoshi Kurokawa"]
|
12
7
|
gem.email = ["hitoshi@nextseed.jp"]
|
13
|
-
|
8
|
+
|
14
9
|
gem.summary = gem.description
|
10
|
+
gem.description = %q{Command Line Tools for Postfix Admin}
|
15
11
|
gem.homepage = "https://github.com/krhitoshi/postfix_admin"
|
16
12
|
|
17
|
-
gem.
|
18
|
-
|
13
|
+
gem.required_ruby_version = ">= 2.5.0"
|
14
|
+
|
15
|
+
gem.add_dependency 'thor', '~> 1.0.1'
|
16
|
+
gem.add_dependency 'activerecord', '~> 6.0.3'
|
17
|
+
gem.add_dependency 'mysql2', '>= 0.5.3'
|
18
|
+
gem.add_development_dependency 'pry'
|
19
|
+
gem.add_development_dependency 'rake', '~> 13.0.1'
|
20
|
+
gem.add_development_dependency 'rubocop'
|
21
|
+
gem.add_development_dependency 'rspec', '~> 3.9.0'
|
22
|
+
|
23
|
+
# Specify which files should be added to the gem when it is released.
|
24
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
25
|
+
gem.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
26
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
27
|
+
end
|
28
|
+
gem.bindir = "exe"
|
29
|
+
gem.executables = gem.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
30
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
20
|
-
|
31
|
+
|
21
32
|
gem.require_paths = ["lib"]
|
22
|
-
gem.version = PostfixAdmin::VERSION
|
23
33
|
end
|
metadata
CHANGED
@@ -1,100 +1,114 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: postfix_admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hitoshi Kurokawa
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-07-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.0.1
|
20
20
|
type: :runtime
|
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:
|
26
|
+
version: 1.0.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: activerecord
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 6.0.3
|
34
34
|
type: :runtime
|
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:
|
40
|
+
version: 6.0.3
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: mysql2
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.
|
47
|
+
version: 0.5.3
|
48
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: 0.
|
54
|
+
version: 0.5.3
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: pry
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
|
-
type: :
|
62
|
+
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: rake
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - ~>
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 13.0.1
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - ~>
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 13.0.1
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: rubocop
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
-
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 3.9.0
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 3.9.0
|
111
|
+
description: Command Line Tools for Postfix Admin
|
98
112
|
email:
|
99
113
|
- hitoshi@nextseed.jp
|
100
114
|
executables:
|
@@ -102,28 +116,48 @@ executables:
|
|
102
116
|
extensions: []
|
103
117
|
extra_rdoc_files: []
|
104
118
|
files:
|
105
|
-
- .
|
119
|
+
- ".github/workflows/ruby.yml"
|
120
|
+
- ".gitignore"
|
121
|
+
- ".rubocop.yml"
|
122
|
+
- CHANGELOG.md
|
106
123
|
- Gemfile
|
107
124
|
- LICENSE
|
108
125
|
- README.md
|
126
|
+
- Rakefile
|
109
127
|
- Thorfile
|
110
|
-
- bin/
|
128
|
+
- bin/console
|
129
|
+
- docker-admin/Dockerfile
|
130
|
+
- docker-admin/config.local.php
|
131
|
+
- docker-app-2.5/Dockerfile
|
132
|
+
- docker-app/Dockerfile
|
133
|
+
- docker-app/docker-entrypoint.sh
|
134
|
+
- docker-app/my.cnf
|
135
|
+
- docker-compose.yml
|
136
|
+
- docker-db/postfix.v1841.sql
|
137
|
+
- docker-db/postfix.v352.sql
|
138
|
+
- docker-db/postfix.v740.sql
|
139
|
+
- exe/postfix_admin
|
111
140
|
- lib/postfix_admin.rb
|
141
|
+
- lib/postfix_admin/admin.rb
|
142
|
+
- lib/postfix_admin/alias.rb
|
143
|
+
- lib/postfix_admin/application_record.rb
|
112
144
|
- lib/postfix_admin/base.rb
|
113
145
|
- lib/postfix_admin/cli.rb
|
146
|
+
- lib/postfix_admin/concerns/.keep
|
147
|
+
- lib/postfix_admin/concerns/dovecot_cram_md5_password.rb
|
148
|
+
- lib/postfix_admin/concerns/existing_timestamp.rb
|
149
|
+
- lib/postfix_admin/domain.rb
|
150
|
+
- lib/postfix_admin/domain_admin.rb
|
151
|
+
- lib/postfix_admin/doveadm.rb
|
114
152
|
- lib/postfix_admin/error.rb
|
153
|
+
- lib/postfix_admin/log.rb
|
154
|
+
- lib/postfix_admin/mail_domain.rb
|
155
|
+
- lib/postfix_admin/mailbox.rb
|
115
156
|
- lib/postfix_admin/models.rb
|
157
|
+
- lib/postfix_admin/quota.rb
|
116
158
|
- lib/postfix_admin/runner.rb
|
117
159
|
- lib/postfix_admin/version.rb
|
118
160
|
- postfix_admin.gemspec
|
119
|
-
- spec/base_spec.rb
|
120
|
-
- spec/cli_spec.rb
|
121
|
-
- spec/models_spec.rb
|
122
|
-
- spec/postfix_admin.conf
|
123
|
-
- spec/postfix_test.sql
|
124
|
-
- spec/runner_spec.rb
|
125
|
-
- spec/spec_helper.rb
|
126
|
-
- spec/tmp/.gitkeep
|
127
161
|
homepage: https://github.com/krhitoshi/postfix_admin
|
128
162
|
licenses: []
|
129
163
|
metadata: {}
|
@@ -133,26 +167,17 @@ require_paths:
|
|
133
167
|
- lib
|
134
168
|
required_ruby_version: !ruby/object:Gem::Requirement
|
135
169
|
requirements:
|
136
|
-
- -
|
170
|
+
- - ">="
|
137
171
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
172
|
+
version: 2.5.0
|
139
173
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
140
174
|
requirements:
|
141
|
-
- -
|
175
|
+
- - ">="
|
142
176
|
- !ruby/object:Gem::Version
|
143
177
|
version: '0'
|
144
178
|
requirements: []
|
145
|
-
|
146
|
-
rubygems_version: 2.0.0
|
179
|
+
rubygems_version: 3.0.3
|
147
180
|
signing_key:
|
148
181
|
specification_version: 4
|
149
|
-
summary:
|
150
|
-
test_files:
|
151
|
-
- spec/base_spec.rb
|
152
|
-
- spec/cli_spec.rb
|
153
|
-
- spec/models_spec.rb
|
154
|
-
- spec/postfix_admin.conf
|
155
|
-
- spec/postfix_test.sql
|
156
|
-
- spec/runner_spec.rb
|
157
|
-
- spec/spec_helper.rb
|
158
|
-
- spec/tmp/.gitkeep
|
182
|
+
summary: ''
|
183
|
+
test_files: []
|