takelage 0.1.0

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.
Files changed (44) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +674 -0
  3. data/README.md +159 -0
  4. data/bin/tau +5 -0
  5. data/lib/Thorfile +1 -0
  6. data/lib/takelage/bit/cli.rb +18 -0
  7. data/lib/takelage/bit/clipboard/cli.rb +68 -0
  8. data/lib/takelage/bit/clipboard/module.rb +174 -0
  9. data/lib/takelage/bit/scope/cli.rb +58 -0
  10. data/lib/takelage/bit/scope/module.rb +81 -0
  11. data/lib/takelage/completion/cli.rb +21 -0
  12. data/lib/takelage/default.yml +30 -0
  13. data/lib/takelage/docker/cli.rb +16 -0
  14. data/lib/takelage/docker/container/check/cli.rb +40 -0
  15. data/lib/takelage/docker/container/check/module.rb +44 -0
  16. data/lib/takelage/docker/container/cli.rb +127 -0
  17. data/lib/takelage/docker/container/module.rb +168 -0
  18. data/lib/takelage/docker/image/cli.rb +41 -0
  19. data/lib/takelage/docker/image/module.rb +33 -0
  20. data/lib/takelage/docker/image/tag/check/cli.rb +47 -0
  21. data/lib/takelage/docker/image/tag/check/module.rb +56 -0
  22. data/lib/takelage/docker/image/tag/cli.rb +16 -0
  23. data/lib/takelage/docker/image/tag/latest/cli.rb +49 -0
  24. data/lib/takelage/docker/image/tag/latest/module.rb +31 -0
  25. data/lib/takelage/docker/image/tag/list/cli.rb +46 -0
  26. data/lib/takelage/docker/image/tag/list/module.rb +44 -0
  27. data/lib/takelage/docker/socket/cli.rb +61 -0
  28. data/lib/takelage/docker/socket/module.rb +137 -0
  29. data/lib/takelage/git/check/cli.rb +46 -0
  30. data/lib/takelage/git/check/module.rb +64 -0
  31. data/lib/takelage/git/cli.rb +10 -0
  32. data/lib/takelage/info/cli.rb +10 -0
  33. data/lib/takelage/info/project/cli.rb +47 -0
  34. data/lib/takelage/lib/config.rb +80 -0
  35. data/lib/takelage/lib/logging.rb +30 -0
  36. data/lib/takelage/lib/project.rb +57 -0
  37. data/lib/takelage/lib/subcmd.rb +13 -0
  38. data/lib/takelage/lib/system.rb +107 -0
  39. data/lib/takelage/self/cli.rb +40 -0
  40. data/lib/takelage/self/config/cli.rb +70 -0
  41. data/lib/takelage/self/module.rb +26 -0
  42. data/lib/takelage/version +1 -0
  43. data/lib/takelage.rb +198 -0
  44. metadata +185 -0
@@ -0,0 +1,107 @@
1
+ require 'pathname'
2
+ require 'open3'
3
+ require 'yaml'
4
+
5
+
6
+ # Interaction with the operating system
7
+ module SystemModule
8
+
9
+ # Run a command and return the result.
10
+ # @return [Boolean] success of command run
11
+ def run_and_check(command)
12
+ log.debug "Running command '#{command}'"
13
+ stdout_str, stderr_str, status = Open3.capture3 command
14
+ return stdout_str, stderr_str, status
15
+ end
16
+
17
+ # Print hash as yaml.
18
+ def hash_to_yaml(hash)
19
+ if hash == {}
20
+ return nil.to_yaml
21
+ end
22
+ return hash.to_yaml
23
+ end
24
+
25
+ # @return [Hash] content of yaml file
26
+ def read_yaml_file(file)
27
+ log.debug "Reading YAML file \"#{file}\""
28
+
29
+ # Check file existenc
30
+ unless File.exists? file
31
+ log.debug "File \"#{file}\" doesn't exist"
32
+ return nil
33
+ end
34
+
35
+ # Read file
36
+ begin
37
+ content_yaml = File.read file
38
+ rescue
39
+ log.debug "Unable to read file \"#{file}\""
40
+ return nil
41
+ end
42
+
43
+ # Parse YAML
44
+ begin
45
+ content = YAML.load content_yaml
46
+ rescue
47
+ log.debug "Invalid YAML file \"#{file}\""
48
+ log.debug "Try: yamllint #{file}"
49
+ return nil
50
+ end
51
+
52
+ content
53
+ end
54
+
55
+ # Remove directory tree.
56
+ def rm_fr(directory)
57
+ unless File.directory? directory
58
+ log.error "Cannot remove non-existing directory \"#{directory}\""
59
+ return
60
+ end
61
+ log.debug "Removing directory \"#{directory}\" recursively"
62
+ Pathname.new(directory).rmtree
63
+ end
64
+
65
+ # Run a command.
66
+ # @return [String] stdout of command
67
+ def run(command, realtime=false)
68
+ log.debug "Running command '#{command}'"
69
+ stdout_str = ''
70
+ stderr_str = ''
71
+ status = ''
72
+ exitstatus = -1
73
+ Open3.popen3 command do |stdin, stdout, stderr, thread|
74
+ stdout.each do |line|
75
+ say line if realtime
76
+ stdout_str += line
77
+ end
78
+ stderr_str = stderr
79
+ status = thread.value
80
+ exitstatus = thread.value.exitstatus
81
+ end
82
+ unless status.success?
83
+ log.error "Command \"#{command}\" failed!"
84
+ log.debug "status: #{status}"
85
+ log.debug "stdout: #{stdout_str}"
86
+ log.debug "stderr: #{stderr_str}"
87
+ exit exitstatus
88
+ end
89
+ stdout_str
90
+ end
91
+
92
+ # Use Kernel#exec to replace the ruby process with a command.
93
+ def run_and_exit(command)
94
+ log.debug "Running command '#{command}' and exiting afterwards"
95
+ exec command
96
+ end
97
+
98
+ # Use Kernel#fork and Kernel#exec to run a command as a background process.
99
+ def run_and_fork(command)
100
+ log.debug "Running command '#{command}' as a background process"
101
+ job = fork do
102
+ exec command
103
+ end
104
+ Process.detach(job)
105
+ end
106
+
107
+ end
@@ -0,0 +1,40 @@
1
+ module Takelage
2
+
3
+ # semantic version number
4
+ VERSION = (File.read "#{File.dirname(__FILE__)}/../version").chomp
5
+
6
+ # takelage self
7
+ class Self < SubCommandBase
8
+
9
+ include LoggingModule
10
+ include SelfModule
11
+
12
+ desc 'config [COMMAND]', 'Manage takelage configuration'
13
+ subcommand 'config', SelfConfig
14
+
15
+ #
16
+ # self list
17
+ #
18
+ desc 'list', 'List all commands'
19
+ long_desc <<-LONGDESC.gsub("\n", "\x5")
20
+ List all commands
21
+ LONGDESC
22
+ # List all commands.
23
+ def list
24
+ self_list
25
+ end
26
+
27
+ #
28
+ # self version
29
+ #
30
+ desc 'version', 'Print takelage semantic version number'
31
+ long_desc <<-LONGDESC.gsub("\n", "\x5")
32
+ Print takelage semantic version number
33
+ LONGDESC
34
+ #Print takelage semantic version number.
35
+ # @return [String] semantic version number
36
+ def version
37
+ say VERSION
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,70 @@
1
+ module Takelage
2
+
3
+ # takelage bit
4
+ class SelfConfig < SubCommandBase
5
+
6
+ include LoggingModule
7
+ include SystemModule
8
+ include ConfigModule
9
+
10
+ #
11
+ # config defaults
12
+ #
13
+ desc 'default', 'Print takelage default configuration'
14
+ long_desc <<-LONGDESC.gsub("\n", "\x5")
15
+ Print takelage default configuration
16
+ This command will print the takelage default configuration in YAML format.
17
+ You can use it as a starting point for your own configuration by
18
+ redirecting the output to your local takelage configuration file
19
+ (which is by default ~/.takelage.yml):
20
+
21
+ takelage self config defaults > ~/.takelage.yml
22
+ LONGDESC
23
+ # Print takelage default configuration.
24
+ def default
25
+ say hash_to_yaml(config.default)
26
+ end
27
+
28
+ #
29
+ # config home
30
+ #
31
+ desc 'home', 'Print takelage home config file configuration'
32
+ long_desc <<-LONGDESC.gsub("\n", "\x5")
33
+ Print takelage home config file configuration
34
+ This command will print the configuration read from the takelage
35
+ configuration file in your home directory ~/.takelage.yml).
36
+ LONGDESC
37
+ # Print takelage home config file configuration.
38
+ def home
39
+ say hash_to_yaml(config.home)
40
+ end
41
+
42
+ #
43
+ # config project
44
+ #
45
+ desc 'project', 'Print takelage project config file configuration'
46
+ long_desc <<-LONGDESC.gsub("\n", "\x5")
47
+ Print takelage project config file configuration
48
+ This command will print the configuration read from the takelage
49
+ configuration file .takelage.yml in your home directory).
50
+ LONGDESC
51
+ # Print takelage home config file configuration.
52
+ def project
53
+ say hash_to_yaml(config.project)
54
+ end
55
+
56
+ #
57
+ # config active
58
+ #
59
+ desc 'active', 'Print active takelage configuration'
60
+ long_desc <<-LONGDESC.gsub("\n", "\x5")
61
+ Print active takelage configuration
62
+ This command will print the configuration read from the takelage
63
+ configuration file (which is by default ~/.takelage.yml).
64
+ LONGDESC
65
+ # Print active takelage configuration.
66
+ def active
67
+ say hash_to_yaml(config.active)
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,26 @@
1
+ # takelage self
2
+ module SelfModule
3
+
4
+ # Backend method for config self.
5
+ def self_list
6
+
7
+ # use Thorfile which requires relative takelage.rb
8
+ thorfile_dir = "#{File.dirname(__FILE__)}/../"
9
+
10
+ # use thor list to get the list of commands and subcommands
11
+ cmd_thor_list = "bash -c '" +
12
+ "cd #{thorfile_dir} && " +
13
+ "thor list" +
14
+ "'"
15
+ thor_list = `#{cmd_thor_list}`
16
+
17
+ # manipulate thor list output
18
+ thor_list.gsub! "takelage\n", ''
19
+ thor_list.gsub! "------\n", ''
20
+ thor_list.gsub! 'thor ', 'tau '
21
+ thor_list.gsub! /(.*)takelage:c_l_i:(.*)#(.*)/, '\1\2 #\3'
22
+ thor_list.gsub! /.*COMMAND.*\n/, ''
23
+
24
+ say thor_list
25
+ end
26
+ end
@@ -0,0 +1 @@
1
+ 0.1.0
data/lib/takelage.rb ADDED
@@ -0,0 +1,198 @@
1
+ require 'etc'
2
+ require 'fileutils'
3
+ require 'fylla'
4
+ require 'json'
5
+ require 'logger'
6
+ require 'net/http'
7
+ require 'rake'
8
+ require 'socket'
9
+ require 'thor'
10
+ require 'timeout'
11
+ require 'yaml'
12
+
13
+ require_relative 'takelage/lib/logging'
14
+ require_relative 'takelage/lib/subcmd'
15
+ require_relative 'takelage/lib/system'
16
+ require_relative 'takelage/lib/config'
17
+ require_relative 'takelage/lib/project'
18
+
19
+ require_relative 'takelage/git/check/module'
20
+ require_relative 'takelage/git/check/cli'
21
+ require_relative 'takelage/git/cli'
22
+ require_relative 'takelage/bit/scope/module'
23
+ require_relative 'takelage/bit/scope/cli'
24
+ require_relative 'takelage/bit/clipboard/module'
25
+ require_relative 'takelage/bit/clipboard/cli'
26
+ require_relative 'takelage/bit/cli'
27
+ require_relative 'takelage/completion/cli'
28
+ require_relative 'takelage/docker/socket/module'
29
+ require_relative 'takelage/docker/socket/cli'
30
+ require_relative 'takelage/docker/image/tag/list/module'
31
+ require_relative 'takelage/docker/image/tag/list/cli'
32
+ require_relative 'takelage/docker/image/tag/latest/module'
33
+ require_relative 'takelage/docker/image/tag/latest/cli'
34
+ require_relative 'takelage/docker/image/tag/check/module'
35
+ require_relative 'takelage/docker/image/tag/check/cli'
36
+ require_relative 'takelage/docker/image/tag/cli'
37
+ require_relative 'takelage/docker/image/module'
38
+ require_relative 'takelage/docker/image/cli'
39
+ require_relative 'takelage/docker/container/check/module'
40
+ require_relative 'takelage/docker/container/check/cli'
41
+ require_relative 'takelage/docker/container/module'
42
+ require_relative 'takelage/docker/container/cli'
43
+ require_relative 'takelage/docker/cli'
44
+ require_relative 'takelage/info/project/cli'
45
+ require_relative 'takelage/info/cli'
46
+ require_relative 'takelage/self/config/cli'
47
+ require_relative 'takelage/self/module'
48
+ require_relative 'takelage/self/cli'
49
+
50
+
51
+ # Facilitate the takelage devops workflow.
52
+ module Takelage
53
+
54
+ # takelage
55
+ class CLI < Thor
56
+
57
+ include LoggingModule
58
+ include SystemModule
59
+ include ConfigModule
60
+ include ProjectModule
61
+
62
+ check_unknown_options!
63
+
64
+ # @return [String] bash completion code
65
+ attr_reader :bash_fylla
66
+
67
+ option :loglevel,
68
+ :aliases => 'l',
69
+ :default => 'INFO',
70
+ :desc => 'One of: FATAL, ERROR, WARN, INFO, DEBUG'
71
+ # Initialize takelage cli.
72
+ def initialize(args = [], local_options = {}, configuration = {})
73
+
74
+ # Initialize thor parent class
75
+ super args, local_options, configuration
76
+
77
+ # Initialize global singleton log
78
+ initialize_logging options[:loglevel].to_s.upcase
79
+
80
+ # Initialize global singleton config
81
+ initialize_config
82
+
83
+ # Initialize global singleton project
84
+ initialize_project
85
+
86
+ # fylla bash completion code
87
+ @bash_fylla = Fylla.bash_completion self
88
+ end
89
+
90
+ #
91
+ # Subcommands
92
+ #
93
+
94
+ desc 'bit [COMMAND] ', 'Manage bit'
95
+ subcommand 'bit', Bit
96
+
97
+ desc 'completion [COMMAND] ', 'Print shell completion code'
98
+ subcommand 'completion', Completion
99
+
100
+ desc 'docker [COMMAND] ', 'Manage docker containers'
101
+ subcommand 'docker', Docker
102
+
103
+ desc 'git [COMMAND] ', 'Manage git'
104
+ subcommand 'git', Git
105
+
106
+ desc 'info [COMMAND] ', 'Get information'
107
+ subcommand 'info', Info
108
+
109
+ desc 'self [COMMAND] ', 'Manage takelage tools'
110
+ subcommand 'self', Self
111
+
112
+ #
113
+ # Top-level commands
114
+ #
115
+
116
+ desc 'config', 'Alias for tau self config active'
117
+ # takelage config: {takelage::SelfConfig#active}
118
+ def config
119
+ Takelage::SelfConfig.new.active
120
+ end
121
+
122
+ desc 'copy [DIR] [SCOPE]', 'Alias for tau bit clipboard copy'
123
+ # takelage copy: {takelage::BitClipboard#copy}
124
+ def copy(dir_or_file, scope)
125
+ Takelage::BitClipboard.new.copy dir_or_file, scope
126
+ end
127
+
128
+ desc 'project', 'Alias for tau info project active'
129
+ # takelage project: {takelage::InfoProject#active}
130
+ def project
131
+ Takelage::InfoProject.new.active
132
+ end
133
+
134
+ desc 'login', 'Alias for tau docker container login'
135
+ # takelage login: {takelage::DockerContainer#login}
136
+ def login
137
+ Takelage::DockerContainer.new.login
138
+ end
139
+
140
+ desc 'list', 'Alias for tau self list'
141
+ # takelage version: {takelage::Self#list}
142
+ def list
143
+ Takelage::Self.new.list
144
+ end
145
+
146
+ desc 'nuke', 'Alias for tau docker container nuke'
147
+ # takelage nuke: {takelage::DockerContainer#nuke}
148
+ def nuke
149
+ Takelage::DockerContainer.new.nuke
150
+ end
151
+
152
+ desc 'paste [COMPONENT] [DIR]', 'Alias for tau bit clipboard paste'
153
+ # takelage paste: {takelage::BitClipboard#paste}
154
+ def paste(cid, dir)
155
+ Takelage::BitClipboard.new.paste cid, dir
156
+ end
157
+
158
+ desc 'pull', 'Alias for tau bit clipboard pull'
159
+ # takelage pull: {takelage::BitClipboard#pull}
160
+ def pull
161
+ Takelage::BitClipboard.new.pull
162
+ end
163
+
164
+ desc 'purge', 'Alias for tau docker container purge'
165
+ # takelage purge: {takelage::DockerContainer#purge}
166
+ def purge
167
+ Takelage::DockerContainer.new.purge
168
+ end
169
+
170
+ desc 'push', 'Alias for tau bit clipboard push'
171
+ # takelage push: {takelage::BitClipboard#push}
172
+ def push
173
+ Takelage::BitClipboard.new.push
174
+ end
175
+
176
+ desc 'update', 'Alias for tau docker image update'
177
+ # takelage update: {takelage::DockerImage#update}
178
+ def update
179
+ Takelage::DockerImage.new.update
180
+ end
181
+
182
+ desc 'version', 'Alias for tau self version'
183
+ # takelage version: {takelage::Self#version}
184
+ def version
185
+ Takelage::Self.new.version
186
+ end
187
+
188
+ #
189
+ # Administrative functions
190
+ #
191
+
192
+ # Behave as expected by correctly reporting failure in exit status.
193
+ # See https://github.com/erikhuda/thor/wiki/Making-An-Executable
194
+ def self.exit_on_failure?
195
+ true
196
+ end
197
+ end
198
+ end
metadata ADDED
@@ -0,0 +1,185 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: takelage
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Geospin
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-12-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: logger
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.4'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.4'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '12.3'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '12.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: thor
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: bundler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.17'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.17'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '12.3'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '12.3'
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'
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'
111
+ description: tau-cli is a thor command line script to tame the takelage devops workflow
112
+ email:
113
+ - takelage@geospin.de
114
+ executables:
115
+ - tau
116
+ extensions: []
117
+ extra_rdoc_files: []
118
+ files:
119
+ - LICENSE
120
+ - README.md
121
+ - bin/tau
122
+ - lib/Thorfile
123
+ - lib/takelage.rb
124
+ - lib/takelage/bit/cli.rb
125
+ - lib/takelage/bit/clipboard/cli.rb
126
+ - lib/takelage/bit/clipboard/module.rb
127
+ - lib/takelage/bit/scope/cli.rb
128
+ - lib/takelage/bit/scope/module.rb
129
+ - lib/takelage/completion/cli.rb
130
+ - lib/takelage/default.yml
131
+ - lib/takelage/docker/cli.rb
132
+ - lib/takelage/docker/container/check/cli.rb
133
+ - lib/takelage/docker/container/check/module.rb
134
+ - lib/takelage/docker/container/cli.rb
135
+ - lib/takelage/docker/container/module.rb
136
+ - lib/takelage/docker/image/cli.rb
137
+ - lib/takelage/docker/image/module.rb
138
+ - lib/takelage/docker/image/tag/check/cli.rb
139
+ - lib/takelage/docker/image/tag/check/module.rb
140
+ - lib/takelage/docker/image/tag/cli.rb
141
+ - lib/takelage/docker/image/tag/latest/cli.rb
142
+ - lib/takelage/docker/image/tag/latest/module.rb
143
+ - lib/takelage/docker/image/tag/list/cli.rb
144
+ - lib/takelage/docker/image/tag/list/module.rb
145
+ - lib/takelage/docker/socket/cli.rb
146
+ - lib/takelage/docker/socket/module.rb
147
+ - lib/takelage/git/check/cli.rb
148
+ - lib/takelage/git/check/module.rb
149
+ - lib/takelage/git/cli.rb
150
+ - lib/takelage/info/cli.rb
151
+ - lib/takelage/info/project/cli.rb
152
+ - lib/takelage/lib/config.rb
153
+ - lib/takelage/lib/logging.rb
154
+ - lib/takelage/lib/project.rb
155
+ - lib/takelage/lib/subcmd.rb
156
+ - lib/takelage/lib/system.rb
157
+ - lib/takelage/self/cli.rb
158
+ - lib/takelage/self/config/cli.rb
159
+ - lib/takelage/self/module.rb
160
+ - lib/takelage/version
161
+ homepage: https://geospin.de
162
+ licenses:
163
+ - GPL-3.0
164
+ metadata:
165
+ yard.run: yard
166
+ post_install_message:
167
+ rdoc_options: []
168
+ require_paths:
169
+ - lib
170
+ required_ruby_version: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ required_rubygems_version: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ requirements: []
181
+ rubygems_version: 3.0.8
182
+ signing_key:
183
+ specification_version: 4
184
+ summary: takelage devops workflow cli
185
+ test_files: []