lino 1.4.0.pre.1 → 1.8.0.pre.1

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: 26425aec78df762185ca7d2010300c55382d47480893649f297794e787f7f50b
4
- data.tar.gz: ea8254e992940104d29e513d6c7374958ebe6dff06fc541ab3682fbe8e955fa3
3
+ metadata.gz: e9451d4d5a1cac65706c718503cc44813da8e4d3aa2397c0469c7d6474c96336
4
+ data.tar.gz: 39aacdb97179f720a9bb440a3e79a9114ef3678428e2b3a7b4611bcf2cd999bf
5
5
  SHA512:
6
- metadata.gz: a4addae49f90d21ce36fd90c9d64c1bfe45647d26e5a268c2ae88498dd7bc5bb8b8f3b1d4f2237f9dcd900851ec6fec2fc513be559f7803bb1df4a7890d3cb48
7
- data.tar.gz: d999675a27f33575eab9f747d8e26a72f752a0d09017d869354f1427aa7cad3d732529720b341bc7dd49448fd0899b0a7b1b0ae842a3826bcacbd2ffa70e0ae8
6
+ metadata.gz: a588ae04311413b5d1aeecc166977927f8c1761949b0ede6674b0ffad10b4fc61455c0cbedfe66d35ef126e507594138276da8c14154dde1c8e67c571855059e
7
+ data.tar.gz: 172aa6befaf57bbecf308a02e0ea01bdf3f43421badbbd34337ca098d7975939d981ecfb6199127297a894107ef120a2556dd4f1c91988cf5957658f100a54f6
data/Gemfile.lock CHANGED
@@ -1,42 +1,45 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lino (1.4.0.pre.1)
4
+ lino (1.8.0.pre.1)
5
5
  hamster (~> 3.0)
6
6
  open4 (~> 1.3)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- activesupport (6.0.3.1)
11
+ activesupport (6.1.0)
12
12
  concurrent-ruby (~> 1.0, >= 1.0.2)
13
- i18n (>= 0.7, < 2)
14
- minitest (~> 5.1)
15
- tzinfo (~> 1.1)
16
- zeitwerk (~> 2.2, >= 2.2.2)
13
+ i18n (>= 1.6, < 2)
14
+ minitest (>= 5.1)
15
+ tzinfo (~> 2.0)
16
+ zeitwerk (~> 2.3)
17
17
  addressable (2.7.0)
18
18
  public_suffix (>= 2.0.2, < 5.0)
19
19
  colored2 (3.1.2)
20
- concurrent-ruby (1.1.6)
21
- diff-lcs (1.3)
22
- docile (1.3.2)
23
- excon (0.73.0)
24
- faraday (1.0.1)
20
+ concurrent-ruby (1.1.7)
21
+ diff-lcs (1.4.4)
22
+ docile (1.3.4)
23
+ excon (0.78.1)
24
+ faraday (1.3.0)
25
+ faraday-net_http (~> 1.0)
25
26
  multipart-post (>= 1.2, < 3)
26
- gem-release (2.1.1)
27
+ ruby2_keywords
28
+ faraday-net_http (1.0.0)
29
+ gem-release (2.2.0)
27
30
  hamster (3.0.0)
28
31
  concurrent-ruby (~> 1.0)
29
- i18n (1.8.2)
32
+ i18n (1.8.6)
30
33
  concurrent-ruby (~> 1.0)
31
- minitest (5.14.1)
34
+ minitest (5.14.2)
32
35
  multipart-post (2.1.1)
33
- octokit (4.18.0)
36
+ octokit (4.20.0)
34
37
  faraday (>= 0.9)
35
38
  sawyer (~> 0.8.0, >= 0.5.3)
36
39
  open4 (1.3.4)
37
- public_suffix (4.0.5)
38
- rake (13.0.1)
39
- rake_circle_ci (0.7.0)
40
+ public_suffix (4.0.6)
41
+ rake (13.0.3)
42
+ rake_circle_ci (0.9.0)
40
43
  colored2 (~> 3.1)
41
44
  excon (~> 0.72)
42
45
  rake_factory (~> 0.23)
@@ -49,35 +52,42 @@ GEM
49
52
  octokit (~> 4.16)
50
53
  rake_factory (~> 0.23)
51
54
  sshkey (~> 2.0)
55
+ rake_gpg (0.12.0)
56
+ rake_factory (>= 0.23, < 1)
57
+ ruby_gpg2 (>= 0.6, < 1)
52
58
  rake_ssh (0.4.0)
53
59
  colored2 (~> 3.1)
54
60
  rake_factory (~> 0.23)
55
61
  sshkey (~> 2.0)
56
- rspec (3.9.0)
57
- rspec-core (~> 3.9.0)
58
- rspec-expectations (~> 3.9.0)
59
- rspec-mocks (~> 3.9.0)
60
- rspec-core (3.9.2)
61
- rspec-support (~> 3.9.3)
62
- rspec-expectations (3.9.2)
62
+ rspec (3.10.0)
63
+ rspec-core (~> 3.10.0)
64
+ rspec-expectations (~> 3.10.0)
65
+ rspec-mocks (~> 3.10.0)
66
+ rspec-core (3.10.1)
67
+ rspec-support (~> 3.10.0)
68
+ rspec-expectations (3.10.1)
63
69
  diff-lcs (>= 1.2.0, < 2.0)
64
- rspec-support (~> 3.9.0)
65
- rspec-mocks (3.9.1)
70
+ rspec-support (~> 3.10.0)
71
+ rspec-mocks (3.10.1)
66
72
  diff-lcs (>= 1.2.0, < 2.0)
67
- rspec-support (~> 3.9.0)
68
- rspec-support (3.9.3)
73
+ rspec-support (~> 3.10.0)
74
+ rspec-support (3.10.1)
75
+ ruby2_keywords (0.0.2)
76
+ ruby_gpg2 (0.6.0)
77
+ lino (>= 1.5)
69
78
  sawyer (0.8.2)
70
79
  addressable (>= 2.3.5)
71
80
  faraday (> 0.8, < 2.0)
72
- simplecov (0.18.5)
81
+ simplecov (0.20.0)
73
82
  docile (~> 1.1)
74
83
  simplecov-html (~> 0.11)
75
- simplecov-html (0.12.2)
84
+ simplecov_json_formatter (~> 0.1)
85
+ simplecov-html (0.12.3)
86
+ simplecov_json_formatter (0.1.2)
76
87
  sshkey (2.0.0)
77
- thread_safe (0.3.6)
78
- tzinfo (1.2.7)
79
- thread_safe (~> 0.1)
80
- zeitwerk (2.3.0)
88
+ tzinfo (2.0.4)
89
+ concurrent-ruby (~> 1.0)
90
+ zeitwerk (2.4.2)
81
91
 
82
92
  PLATFORMS
83
93
  ruby
@@ -87,11 +97,12 @@ DEPENDENCIES
87
97
  gem-release (~> 2.0)
88
98
  lino!
89
99
  rake (~> 13.0)
90
- rake_circle_ci (~> 0.3)
91
- rake_github (~> 0.3)
92
- rake_ssh (~> 0.2)
100
+ rake_circle_ci (~> 0.9)
101
+ rake_github (~> 0.5)
102
+ rake_gpg (~> 0.12)
103
+ rake_ssh (~> 0.4)
93
104
  rspec (~> 3.9)
94
105
  simplecov (~> 0.16)
95
106
 
96
107
  BUNDLED WITH
97
- 2.1.4
108
+ 2.2.15
data/README.md CHANGED
@@ -49,37 +49,53 @@ Lino::CommandLineBuilder.for_command('ls')
49
49
  .with_flag('-a')
50
50
  .build
51
51
  .to_s
52
-
52
+
53
53
  # => ls -l -a
54
-
54
+
55
55
  # commands with options
56
56
  Lino::CommandLineBuilder.for_command('gpg')
57
57
  .with_option('--recipient', 'tobyclemson@gmail.com')
58
58
  .with_option('--sign', './doc.txt')
59
59
  .build
60
- .to_s
61
-
60
+ .to_s
61
+
62
62
  # => gpg --recipient tobyclemson@gmail.com --sign ./doc.txt
63
-
64
- # commands with arguments
63
+
64
+ # commands with an option repeated multiple times (nil and empty option values are ignored)
65
+ Lino::CommandLineBuilder.for_command('example.sh')
66
+ .with_repeated_option('--opt', ['file1.txt', nil, '', 'file2.txt'])
67
+ .build
68
+ .to_s
69
+
70
+ # => example.sh --opt file1.txt --opt file2.txt
71
+
72
+ # commands with arguments
65
73
  Lino::CommandLineBuilder.for_command('diff')
66
74
  .with_argument('./file1.txt')
67
75
  .with_argument('./file2.txt')
68
76
  .build
69
- .to_s
70
-
77
+ .to_s
78
+
71
79
  # => diff ./file1.txt ./file2.txt
72
-
80
+
81
+ # commands with an array of arguments (nil and empty arguments are ignored)
82
+ Lino::CommandLineBuilder.for_command('diff')
83
+ .with_arguments(['./file1.txt', nil, '', './file2.txt'])
84
+ .build
85
+ .to_s
86
+
87
+ # => diff ./file1.txt ./file2.txt
88
+
73
89
  # commands with custom option separator
74
90
  Lino::CommandLineBuilder.for_command('java')
75
91
  .with_option_separator(':')
76
92
  .with_option('-splash', './images/splash.jpg')
77
93
  .with_argument('./application.jar')
78
94
  .build
79
- .to_s
80
-
95
+ .to_s
96
+
81
97
  # => java -splash:./images/splash.jpg ./application.jar
82
-
98
+
83
99
  # commands using a subcommand style
84
100
  Lino::CommandLineBuilder.for_command('git')
85
101
  .with_flag('--no-pager')
@@ -88,9 +104,9 @@ Lino::CommandLineBuilder.for_command('git')
88
104
  end
89
105
  .build
90
106
  .to_s
91
-
107
+
92
108
  # => git --no-pager log --since 2016-01-01
93
-
109
+
94
110
  # commands with multiple levels of subcommand
95
111
  Lino::CommandLineBuilder.for_command('gcloud')
96
112
  .with_subcommand('sql')
data/Rakefile CHANGED
@@ -2,17 +2,40 @@ require 'yaml'
2
2
  require 'rake_circle_ci'
3
3
  require 'rake_github'
4
4
  require 'rake_ssh'
5
+ require 'rake_gpg'
6
+ require 'securerandom'
5
7
  require 'rspec/core/rake_task'
6
8
 
7
9
  task :default => :spec
8
10
 
9
11
  RSpec::Core::RakeTask.new(:spec)
10
12
 
11
- RakeSSH.define_key_tasks(
12
- namespace: :deploy_key,
13
- path: 'config/secrets/ci/',
14
- comment: 'maintainers@infrablocks.io'
15
- )
13
+ namespace :encryption do
14
+ namespace :passphrase do
15
+ task :generate do
16
+ File.open('config/secrets/ci/encryption.passphrase', 'w') do |f|
17
+ f.write(SecureRandom.base64(36))
18
+ end
19
+ end
20
+ end
21
+ end
22
+
23
+ namespace :keys do
24
+ namespace :deploy do
25
+ RakeSSH.define_key_tasks(
26
+ path: 'config/secrets/ci/',
27
+ comment: 'maintainers@infrablocks.io')
28
+ end
29
+
30
+ namespace :gpg do
31
+ RakeGPG.define_generate_key_task(
32
+ output_directory: 'config/secrets/ci',
33
+ name_prefix: 'gpg',
34
+ owner_name: 'InfraBlocks Maintainers',
35
+ owner_email: 'maintainers@infrablocks.io',
36
+ owner_comment: 'lino CI Key')
37
+ end
38
+ end
16
39
 
17
40
  RakeCircleCI.define_project_tasks(
18
41
  namespace: :circle_ci,
@@ -27,6 +50,7 @@ RakeCircleCI.define_project_tasks(
27
50
  File.read('config/secrets/ci/encryption.passphrase')
28
51
  .chomp
29
52
  }
53
+ t.checkout_keys = []
30
54
  t.ssh_keys = [
31
55
  {
32
56
  hostname: "github.com",
@@ -55,6 +79,7 @@ namespace :pipeline do
55
79
  task :prepare => [
56
80
  :'circle_ci:project:follow',
57
81
  :'circle_ci:env_vars:ensure',
82
+ :'circle_ci:checkout_keys:ensure',
58
83
  :'circle_ci:ssh_keys:ensure',
59
84
  :'github:deploy_keys:ensure'
60
85
  ]
@@ -2,10 +2,12 @@ require 'hamster'
2
2
  require_relative 'utilities'
3
3
  require_relative 'command_line'
4
4
  require_relative 'subcommand_builder'
5
+ require_relative 'option_flag_mixin'
5
6
 
6
7
  module Lino
7
8
  class CommandLineBuilder
8
9
  include Lino::Utilities
10
+ include Lino::OptionFlagMixin
9
11
 
10
12
  class <<self
11
13
  def for_command(command)
@@ -14,13 +16,14 @@ module Lino
14
16
  end
15
17
 
16
18
  def initialize(
17
- command: nil,
18
- subcommands: [],
19
- switches: [],
20
- arguments: [],
21
- environment_variables: [],
22
- option_separator: ' ',
23
- option_quoting: nil)
19
+ command: nil,
20
+ subcommands: [],
21
+ switches: [],
22
+ arguments: [],
23
+ environment_variables: [],
24
+ option_separator: ' ',
25
+ option_quoting: nil
26
+ )
24
27
  @command = command
25
28
  @subcommands = Hamster::Vector.new(subcommands)
26
29
  @switches = Hamster::Vector.new(switches)
@@ -31,16 +34,13 @@ module Lino
31
34
  end
32
35
 
33
36
  def with_subcommand(subcommand, &block)
34
- with(subcommands: @subcommands.add((block || lambda { |sub| sub }).call(
35
- SubcommandBuilder.for_subcommand(subcommand))))
36
- end
37
-
38
- def with_option(switch, value, separator: nil, quoting: nil)
39
- with(switches: @switches.add({
40
- components: [switch, value],
41
- separator: separator,
42
- quoting: quoting
43
- }))
37
+ with(
38
+ subcommands: @subcommands.add(
39
+ (block || ->(sub) { sub }).call(
40
+ SubcommandBuilder.for_subcommand(subcommand)
41
+ )
42
+ )
43
+ )
44
44
  end
45
45
 
46
46
  def with_option_separator(option_separator)
@@ -51,12 +51,13 @@ module Lino
51
51
  with(option_quoting: character)
52
52
  end
53
53
 
54
- def with_flag(flag)
55
- with(switches: @switches.add({components: [flag]}))
54
+ def with_argument(argument)
55
+ with(arguments: add_argument(argument))
56
56
  end
57
57
 
58
- def with_argument(argument)
59
- with(arguments: @arguments.add({components: [argument]}))
58
+ def with_arguments(arguments)
59
+ arguments.each { |argument| add_argument(argument) }
60
+ with({})
60
61
  end
61
62
 
62
63
  def with_environment_variable(environment_variable, value)
@@ -65,41 +66,47 @@ module Lino
65
66
 
66
67
  def build
67
68
  components = [
68
- map_and_join(@environment_variables) { |var|
69
- "#{var[0]}=\"#{var[1]}\""
70
- },
71
- @command,
72
- map_and_join(@switches,
73
- &(quote_with(@option_quoting) >> join_with(@option_separator))),
74
- map_and_join(@subcommands) { |sub|
75
- sub.build(@option_separator, @option_quoting)
76
- },
77
- map_and_join(@arguments, &join_with(' '))
69
+ map_and_join(@environment_variables) do |var|
70
+ "#{var[0]}=\"#{var[1].to_s.gsub(/"/, '\\"')}\""
71
+ end,
72
+ @command,
73
+ map_and_join(
74
+ @switches,
75
+ &(quote_with(@option_quoting) >> join_with(@option_separator))
76
+ ),
77
+ map_and_join(@subcommands) do |sub|
78
+ sub.build(@option_separator, @option_quoting)
79
+ end,
80
+ map_and_join(@arguments, &join_with(' '))
78
81
  ]
79
82
 
80
- command_string = components
81
- .reject { |item| item.empty? }
82
- .join(' ')
83
+ command_string = components.reject(&:empty?).join(' ')
83
84
 
84
85
  CommandLine.new(command_string)
85
86
  end
86
87
 
87
88
  private
88
89
 
89
- def with **replacements
90
+ def with(**replacements)
90
91
  CommandLineBuilder.new(**state.merge(replacements))
91
92
  end
92
93
 
93
94
  def state
94
95
  {
95
- command: @command,
96
- subcommands: @subcommands,
97
- switches: @switches,
98
- arguments: @arguments,
99
- environment_variables: @environment_variables,
100
- option_separator: @option_separator,
101
- option_quoting: @option_quoting
96
+ command: @command,
97
+ subcommands: @subcommands,
98
+ switches: @switches,
99
+ arguments: @arguments,
100
+ environment_variables: @environment_variables,
101
+ option_separator: @option_separator,
102
+ option_quoting: @option_quoting
102
103
  }
103
104
  end
105
+
106
+ def add_argument(argument)
107
+ return @arguments if missing?(argument)
108
+
109
+ @arguments = @arguments.add({ components: [argument] })
110
+ end
104
111
  end
105
- end
112
+ end
@@ -0,0 +1,36 @@
1
+ module Lino
2
+ module OptionFlagMixin
3
+ def with_option(switch, value, separator: nil, quoting: nil)
4
+ with(switches: add_option(switch, value, separator, quoting))
5
+ end
6
+
7
+ def with_repeated_option(switch, values, separator: nil, quoting: nil)
8
+ values.each do |value|
9
+ add_option(switch, value, separator, quoting)
10
+ end
11
+ with({})
12
+ end
13
+
14
+ def with_flag(flag)
15
+ with(switches: @switches.add({ components: [flag] }))
16
+ end
17
+
18
+ private
19
+
20
+ def add_option(switch, value, separator, quoting)
21
+ return @switches if missing?(value)
22
+
23
+ @switches = @switches.add(
24
+ {
25
+ components: [switch, value],
26
+ separator: separator,
27
+ quoting: quoting
28
+ }
29
+ )
30
+ end
31
+
32
+ def missing?(value)
33
+ value.nil? || (value.respond_to?(:empty?) && value.empty?)
34
+ end
35
+ end
36
+ end
@@ -1,58 +1,45 @@
1
1
  require 'hamster'
2
2
  require_relative 'utilities'
3
+ require_relative 'option_flag_mixin'
3
4
 
4
5
  module Lino
5
6
  class SubcommandBuilder
6
7
  include Lino::Utilities
8
+ include Lino::OptionFlagMixin
7
9
 
8
10
  class <<self
9
- def for_subcommand subcommand
11
+ def for_subcommand(subcommand)
10
12
  SubcommandBuilder.new(subcommand: subcommand)
11
13
  end
12
14
  end
13
15
 
14
- def initialize(
15
- subcommand: nil,
16
- switches: [])
16
+ def initialize(subcommand: nil, switches: [])
17
17
  @subcommand = subcommand
18
18
  @switches = Hamster::Vector.new(switches)
19
19
  end
20
20
 
21
- def with_option(switch, value, separator: nil, quoting: nil)
22
- with(switches: @switches.add({
23
- components: [switch, value],
24
- separator: separator,
25
- quoting: quoting
26
- }))
27
- end
28
-
29
- def with_flag(flag)
30
- with(switches: @switches.add({components: [flag]}))
31
- end
32
-
33
21
  def build(option_separator, option_quoting)
34
22
  components = [
35
- @subcommand,
36
- map_and_join(@switches,
37
- &(quote_with(option_quoting) >> join_with(option_separator)))
23
+ @subcommand,
24
+ map_and_join(
25
+ @switches,
26
+ &(quote_with(option_quoting) >> join_with(option_separator))
27
+ )
38
28
  ]
39
-
40
- components
41
- .reject { |item| item.empty? }
42
- .join(' ')
29
+ components.reject(&:empty?).join(' ')
43
30
  end
44
31
 
45
32
  private
46
33
 
47
- def with **replacements
34
+ def with(**replacements)
48
35
  SubcommandBuilder.new(**state.merge(replacements))
49
36
  end
50
37
 
51
38
  def state
52
39
  {
53
- subcommand: @subcommand,
54
- switches: @switches
40
+ subcommand: @subcommand,
41
+ switches: @switches
55
42
  }
56
43
  end
57
44
  end
58
- end
45
+ end
data/lib/lino/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Lino
2
- VERSION = '1.4.0.pre.1'
2
+ VERSION = '1.8.0.pre.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lino
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0.pre.1
4
+ version: 1.8.0.pre.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toby Clemson
@@ -72,42 +72,56 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0.3'
75
+ version: '0.9'
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: '0.3'
82
+ version: '0.9'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rake_github
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0.3'
89
+ version: '0.5'
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
- version: '0.3'
96
+ version: '0.5'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rake_ssh
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0.2'
103
+ version: '0.4'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0.2'
110
+ version: '0.4'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rake_gpg
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0.12'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0.12'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: rspec
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -157,16 +171,6 @@ executables: []
157
171
  extensions: []
158
172
  extra_rdoc_files: []
159
173
  files:
160
- - ".circleci/config.yml"
161
- - ".circleci/gpg.private.enc"
162
- - ".envrc"
163
- - ".git-crypt/.gitattributes"
164
- - ".git-crypt/keys/default/0/41D2606F66C3FF28874362B61A16916844CE9D82.gpg"
165
- - ".git-crypt/keys/default/0/AAE932B730C2BA697FFDFAE05DA390873E38358B.gpg"
166
- - ".gitattributes"
167
- - ".gitignore"
168
- - ".rspec"
169
- - ".ruby-version"
170
174
  - CODE_OF_CONDUCT.md
171
175
  - Gemfile
172
176
  - Gemfile.lock
@@ -175,29 +179,13 @@ files:
175
179
  - Rakefile
176
180
  - bin/console
177
181
  - bin/setup
178
- - config/secrets/ci/encryption.passphrase
179
- - config/secrets/ci/gpg.private
180
- - config/secrets/ci/gpg.public
181
- - config/secrets/ci/ssh.private
182
- - config/secrets/ci/ssh.public
183
- - config/secrets/circle_ci/config.yaml
184
- - config/secrets/github/config.yaml
185
- - config/secrets/rubygems/credentials
186
- - go
187
182
  - lib/lino.rb
188
183
  - lib/lino/command_line.rb
189
184
  - lib/lino/command_line_builder.rb
185
+ - lib/lino/option_flag_mixin.rb
190
186
  - lib/lino/subcommand_builder.rb
191
187
  - lib/lino/utilities.rb
192
188
  - lib/lino/version.rb
193
- - lino.gemspec
194
- - scripts/ci/common/configure-git.sh
195
- - scripts/ci/common/configure-rubygems.sh
196
- - scripts/ci/common/install-git-crypt.sh
197
- - scripts/ci/common/install-gpg-key.sh
198
- - scripts/ci/steps/prerelease.sh
199
- - scripts/ci/steps/release.sh
200
- - scripts/ci/steps/test.sh
201
189
  homepage: https://github.com/infrablocks/lino
202
190
  licenses:
203
191
  - MIT
data/.circleci/config.yml DELETED
@@ -1,56 +0,0 @@
1
- version: 2.1
2
- jobs:
3
- test:
4
- working_directory: ~/source
5
- docker:
6
- - image: ruby:2.6.0
7
- steps:
8
- - checkout
9
- - run: ./scripts/ci/steps/test.sh
10
- prerelease:
11
- working_directory: ~/source
12
- docker:
13
- - image: ruby:2.6.0
14
- steps:
15
- - checkout
16
- - run: ./scripts/ci/common/install-git-crypt.sh
17
- - run: ./scripts/ci/common/install-gpg-key.sh
18
- - run: ./scripts/ci/common/configure-git.sh
19
- - run: ./scripts/ci/common/configure-rubygems.sh
20
- - run: ./scripts/ci/steps/prerelease.sh
21
- release:
22
- working_directory: ~/source
23
- docker:
24
- - image: ruby:2.6.0
25
- steps:
26
- - checkout
27
- - run: ./scripts/ci/common/install-git-crypt.sh
28
- - run: ./scripts/ci/common/install-gpg-key.sh
29
- - run: ./scripts/ci/common/configure-git.sh
30
- - run: ./scripts/ci/common/configure-rubygems.sh
31
- - run: ./scripts/ci/steps/release.sh
32
-
33
- workflows:
34
- version: 2
35
- pipeline:
36
- jobs:
37
- - test
38
- - prerelease:
39
- requires:
40
- - test
41
- filters:
42
- branches:
43
- only: master
44
- - hold:
45
- type: approval
46
- requires:
47
- - prerelease
48
- filters:
49
- branches:
50
- only: master
51
- - release:
52
- requires:
53
- - hold
54
- filters:
55
- branches:
56
- only: master
Binary file
data/.envrc DELETED
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- PROJECT_DIR="$(pwd)"
4
-
5
- PATH_add ${PROJECT_DIR}
@@ -1,4 +0,0 @@
1
- # Do not edit this file. To specify the files to encrypt, create your own
2
- # .gitattributes file in the directory where your files are.
3
- * !filter !diff
4
- *.gpg binary
data/.gitattributes DELETED
@@ -1 +0,0 @@
1
- config/secrets/** filter=git-crypt diff=git-crypt
data/.gitignore DELETED
@@ -1,31 +0,0 @@
1
- ## Standard stuff:
2
- *.gem
3
- *.rbc
4
- /.config
5
- /coverage/
6
- /InstalledFiles
7
- /pkg/
8
- .rspec_status
9
- /spec/reports/
10
- /spec/examples.txt
11
- /test/tmp/
12
- /test/version_tmp/
13
- /tmp/
14
- .rakeTasks
15
-
16
- ## Documentation cache and generated files:
17
- /.yardoc/
18
- /_yardoc/
19
- /doc/
20
- /rdoc/
21
-
22
- ## Environment normalization:
23
- /.bundle/
24
- /vendor/bundle
25
- /lib/bundler/man/
26
-
27
- ## IDE:
28
- .idea
29
- *.ipr
30
- *.iws
31
- *.iml
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- --format documentation
2
- --color
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 2.6.0
@@ -1 +0,0 @@
1
- fmFsBRd0haxdPyYDNZkgDHojaZ3MgWg5DFZKrzJtQCVdehpX
@@ -1,58 +0,0 @@
1
- -----BEGIN PGP PRIVATE KEY BLOCK-----
2
-
3
- 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
- OOiJYYzHkSqJwdbrMf1R/Uj1S4D4zP9BPc9VmKm1tPRnk4rrhpJPE9jR9X/6RTw3
5
- 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
- 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
- SBqxRZCWADiO61vzTO8YlZj4ke+S7Lkg/d4lafVJ3Bsw89K7F79+mIZaBU1oon8v
8
- y+AM7QAK6kGgb50vsS9QYRtYqZzK0DsaLNhVABEBAAEAB/4wRYIDAR49LslksVf7
9
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- ld2iK0ZGg33j9b6xY7XzoLUsa/HISdLdF6xgsMJZMhDfBRaCDDH98cbvUkR1rdim
27
- SxNMWnEd+q7BApgSItVfnuMcZDpAPY+QnoqjWTlM1GVK0cjD7Fb3QiAOomBsD+O3
28
- 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
- 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
- rWupgrH1oEPUv0RkM43KV82wqoxJJaGdA5gEXmJqOAEIALXw6hlF/PWRPIWIO6tJ
31
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- nTj0jP/oidMQDddNRDwPMleebjEHX0QbcKb3Cc6dapyUxKDMkER7eQfeHXnV/aOM
55
- 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
56
- 3zYh8+8wYJ4+vrkTFspeu2s=
57
- =bs3g
58
- -----END PGP PRIVATE KEY BLOCK-----
@@ -1,31 +0,0 @@
1
- -----BEGIN PGP PUBLIC KEY BLOCK-----
2
-
3
- mQENBF5iajgBCADpMbSEz+Fl4HgUxXQLTuIi01QMf/dkwVDuwNrPdVtkKKi27RS5
4
- OOiJYYzHkSqJwdbrMf1R/Uj1S4D4zP9BPc9VmKm1tPRnk4rrhpJPE9jR9X/6RTw3
5
- ilIqelK84WfR74yAbaQYtEF3YEOhWSCvwsf3jQuE8LBMGh+Zf8DlYeH5wBvIIF5x
6
- y0GDktvq5+dr/szqi8rMCz3MdiouUDbyWmMKwjmegSLzS/kf8dgiEg7iChVYNSAT
7
- SBqxRZCWADiO61vzTO8YlZj4ke+S7Lkg/d4lafVJ3Bsw89K7F79+mIZaBU1oon8v
8
- y+AM7QAK6kGgb50vsS9QYRtYqZzK0DsaLNhVABEBAAG0M09wZW4gU291cmNlIENJ
9
- IDx0b2J5Y2xlbXNvbitvcGVuc291cmNlY2lAZ21haWwuY29tPokBVAQTAQgAPhYh
10
- BKrpMrcwwrppf/364F2jkIc+ODWLBQJeYmo4AhsDBQkDwmcABQsJCAcCBhUKCQgL
11
- AgQWAgMBAh4BAheAAAoJEF2jkIc+ODWLqhUIAMSJ9l+acSPSnW0MDhjFn46cFUSC
12
- b7YF77wBBrMj6LhQnvad5ii+ik+fld2iK0ZGg33j9b6xY7XzoLUsa/HISdLdF6xg
13
- sMJZMhDfBRaCDDH98cbvUkR1rdimSxNMWnEd+q7BApgSItVfnuMcZDpAPY+Qnoqj
14
- WTlM1GVK0cjD7Fb3QiAOomBsD+O3zBqBpGBZ8bnkaxu7WfQMSV0QBBoyV5pNkYPs
15
- pHWJgIm1axwYX9383ftDDtVzAQ6YcO8x+NntEIbV7RFwyCD+AlglDfUMe4ZYxniI
16
- jYhAWrGNVMrLsyfkSYDd9keUQGXgrWupgrH1oEPUv0RkM43KV82wqoxJJaG5AQ0E
17
- XmJqOAEIALXw6hlF/PWRPIWIO6tJS6u5g8ndnwlmNLbhgUj0D7OjXS1mzjFIeKvm
18
- jFBb/6klmrow8WilnbjzgNWzHsSgkQGrn5WgiC+jDhwAv2UB6afs4MySM+gD1EZc
19
- 8AAIE/asONMql/GVhPMRr4vbd7D7UdEA8YCVUc7qPRFITBPS/x2/E4lAzY/q5KZ9
20
- uFI89Xrw02A7/Z4j+pWgOpUu/yExSu8pvFJ65aJ5t2nw48MdnYoykKKeZ/0FEzXj
21
- s/MbJGDwVcM699TGodqMw40Kl7jIqIje7HvW18pRKgbwuzFJTA0gfAl6qWWbhaGB
22
- m5E1zr/vTBh+vt4dLOtXD+5rG0blNlMAEQEAAYkBPAQYAQgAJhYhBKrpMrcwwrpp
23
- f/364F2jkIc+ODWLBQJeYmo4AhsMBQkDwmcAAAoJEF2jkIc+ODWLedoIAKOh0rzN
24
- ykH7uHPxqFLele2y0mv2HlYTDlZyZOnqqAa1dQeVRPwKzdWxzKuz8EJUBeLPTuj2
25
- jNYxNSzax6TjYUGnRZES1/w1lOWHcBjM3A2XcR7sLNHQkM0NWsmL941tCs/wqRhw
26
- WStCju+3uQHjlopABeMsfKfaOmfwgZqXgqm6wPucObTXy61ZxAXSY7yhnTj0jP/o
27
- idMQDddNRDwPMleebjEHX0QbcKb3Cc6dapyUxKDMkER7eQfeHXnV/aOMVv6yigG1
28
- jaOPJ+k3Atri5cZEFcdAqB4X30VOIHnSSIY/I/XIMnkJ6nrQclZzgRMH3zYh8+8w
29
- YJ4+vrkTFspeu2s=
30
- =aLlT
31
- -----END PGP PUBLIC KEY BLOCK-----
@@ -1,51 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- +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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- gqufMlJzhfYT+XrUat+g/unxkJ8aQHo++bbvKLz+frOqVXcnYPyKyrDN3Z+SMc2g
32
- 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
- 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
- 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
- 7QrnEnhvXE7HCPSNNmBggXhv4ICjoYNTLn9CTsPe5h8RcD1W2IkxF5RMH5iG6H3s
36
- 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
- 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
- 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
- +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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- ZhGjpOTPR4yOZ9vR9a1WBGNAcyK21vRN64cScnWHY20vRwZnDbgLrpwqjaOMJ54v
48
- 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
- c7mKWMz4kn9n7yr78vf5F0IBWtiQb0Po68rhVtTOq296yy50M8Unaq9dIxUc3gcv
50
- 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
51
- -----END RSA PRIVATE KEY-----
@@ -1 +0,0 @@
1
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC53wvncgMc7mMp9QIVdsAuespzMhOezvHQ6oEz3+UDnrTKRuquvCgwlIWAHYOh3Lc8nRiH6p8zaa0Jla67rQdL4Ox4GH5BjF2tRG4ZsmR/448/AQUUGyae6cRXFeEAGU6tvQpF5boFmvlqQTQnaGrc2KRkZxvSfTMNru50bR35z1J7kOVUtSXPPJ+qNPeO/rtvlLd/Oovju16CEMzJqR68XM8j87YT51rbe2nAA7uhA3PUl0MsoSyGz71pV+aAqeAOyXSk1Lrr+7Nv42x8TcCvoCUPp2c/R5vX093/M8gcVZmnswERGQVE/j+j5yJZBc5mEaXzkOi3s+e1TbZ8/mVHw6deLp1t5cRa7ZekyBtCJm1CK2oQ9beaJJM+APPTMkzRmgOzYKir5Kfm7I3hyFFwaArRTXtlxnof5j3Px55p3QaJE7q8bURlumDvlBXBlA4R3IzKjm75yMDf6Hzu6/llsk20mqS/PXq90BBXNL0LQgw6IlHqDwv7FJacwk33KDvBjqu8w7XprXeIhbUCp7yXuSrh9q5kq+qe80ySA+Sv2DH+tJ/KEpMhK0zVrdnUh9wBgQE6SJzvXm05P+5jpXtWe1lUqtxyZ0VM+NTwHiMFu6JxoJgIG6grNKdUZojCgRT4r5Xck9nqQ9l9m5zXIbFnapRTZWb0kq+mDybP0BL8Xw== maintainers@infrablocks.io
@@ -1,2 +0,0 @@
1
- ---
2
- circle_ci_api_token: "27393e98772c1342785957a776ca4acbaea7f7cb"
@@ -1,2 +0,0 @@
1
- ---
2
- github_personal_access_token: "6deebdb15c371069618942f48acd76f35880ebb5"
@@ -1,2 +0,0 @@
1
- ---
2
- :rubygems_api_key: bd53d6202bc5ec5d4c51dd2b245f2f14
data/go DELETED
@@ -1,56 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- [ -n "$GO_DEBUG" ] && set -x
4
- set -e
5
-
6
- project_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
7
-
8
- verbose="no"
9
- skip_checks="no"
10
- offline="no"
11
-
12
- missing_dependency="no"
13
-
14
- [ -n "$GO_DEBUG" ] && verbose="yes"
15
- [ -n "$GO_SKIP_CHECKS" ] && skip_checks="yes"
16
- [ -n "$GO_OFFLINE" ] && offline="yes"
17
-
18
-
19
- if [[ "$skip_checks" = "no" ]]; then
20
- echo "Checking for system dependencies."
21
- ruby_version="$(cat "$project_dir"/.ruby-version)"
22
- if ! type ruby >/dev/null 2>&1 || ! ruby -v | grep -q "$ruby_version"; then
23
- echo "This codebase requires Ruby $ruby_version."
24
- missing_dependency="yes"
25
- fi
26
-
27
- if [[ "$missing_dependency" = "yes" ]]; then
28
- echo "Please install missing dependencies to continue."
29
- exit 1
30
- fi
31
-
32
- echo "All system dependencies present. Continuing."
33
- fi
34
-
35
- if [[ "$offline" = "no" ]]; then
36
- echo "Installing bundler."
37
- if [[ "$verbose" = "yes" ]]; then
38
- gem install --no-document bundler
39
- else
40
- gem install --no-document bundler --silent
41
- fi
42
-
43
- echo "Installing ruby dependencies."
44
- if [[ "$verbose" = "yes" ]]; then
45
- bundle install
46
- else
47
- bundle install --quiet
48
- fi
49
- fi
50
-
51
- echo "Starting rake."
52
- if [[ "$verbose" = "yes" ]]; then
53
- time bundle exec rake --verbose "$@"
54
- else
55
- time bundle exec rake "$@"
56
- fi
data/lino.gemspec DELETED
@@ -1,38 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'lino/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = 'lino'
8
- spec.version = Lino::VERSION
9
- spec.authors = ['Toby Clemson']
10
- spec.email = ['tobyclemson@gmail.com']
11
-
12
- spec.date = '2017-01-27'
13
- spec.summary = 'Command line execution utilities'
14
- spec.description = 'Command line builders and executors.'
15
- spec.homepage = 'https://github.com/infrablocks/lino'
16
- spec.license = 'MIT'
17
-
18
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
19
- f.match(%r{^(test|spec|features)/})
20
- end
21
- spec.bindir = 'exe'
22
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
- spec.require_paths = ['lib']
24
-
25
- spec.required_ruby_version = '>= 2.6'
26
-
27
- spec.add_dependency 'hamster', '~> 3.0'
28
- spec.add_dependency 'open4', '~> 1.3'
29
-
30
- spec.add_development_dependency 'bundler', '~> 2.0'
31
- spec.add_development_dependency 'rake', '~> 13.0'
32
- spec.add_development_dependency 'rake_circle_ci', '~> 0.3'
33
- spec.add_development_dependency 'rake_github', '~> 0.3'
34
- spec.add_development_dependency 'rake_ssh', '~> 0.2'
35
- spec.add_development_dependency 'rspec', '~> 3.9'
36
- spec.add_development_dependency 'gem-release', '~> 2.0'
37
- spec.add_development_dependency 'simplecov', '~> 0.16'
38
- end
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- [ -n "$DEBUG" ] && set -x
4
- set -e
5
- set -o pipefail
6
-
7
- git config --global user.email "circleci@infrablocks.io"
8
- git config --global user.name "Circle CI"
@@ -1,16 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- [ -n "$DEBUG" ] && set -x
4
- set -e
5
- set -o pipefail
6
-
7
- SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
8
- PROJECT_DIR="$( cd "$SCRIPT_DIR/../../.." && pwd )"
9
-
10
- cd "$PROJECT_DIR"
11
-
12
- git crypt unlock
13
-
14
- mkdir -p ~/.gem
15
- cp config/secrets/rubygems/credentials ~/.gem/credentials
16
- chmod 0600 ~/.gem/credentials
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- [ -n "$DEBUG" ] && set -x
4
- set -e
5
- set -o pipefail
6
-
7
- apt-get update
8
- apt-get install -y --no-install-recommends git ssh git-crypt
@@ -1,19 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- [ -n "$DEBUG" ] && set -x
4
- set -e
5
- set -o pipefail
6
-
7
- SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
8
- PROJECT_DIR="$( cd "$SCRIPT_DIR/../../.." && pwd )"
9
-
10
- cd "$PROJECT_DIR"
11
-
12
- set +e
13
- openssl version
14
- openssl aes-256-cbc \
15
- -d \
16
- -md sha1 \
17
- -in ./.circleci/gpg.private.enc \
18
- -k "${ENCRYPTION_PASSPHRASE}" | gpg --import -
19
- set -e
@@ -1,16 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- [ -n "$DEBUG" ] && set -x
4
- set -e
5
- set -o pipefail
6
-
7
- SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
8
- PROJECT_DIR="$( cd "$SCRIPT_DIR/../../.." && pwd )"
9
-
10
- cd "$PROJECT_DIR"
11
-
12
- ./go version:bump[pre]
13
- ./go release
14
-
15
- git status
16
- git push
@@ -1,18 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- [ -n "$DEBUG" ] && set -x
4
- set -e
5
- set -o pipefail
6
-
7
- SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
8
- PROJECT_DIR="$( cd "$SCRIPT_DIR/../../.." && pwd )"
9
-
10
- cd "$PROJECT_DIR"
11
-
12
- git pull
13
-
14
- ./go version:bump[minor]
15
- ./go release
16
-
17
- git status
18
- git push
@@ -1,12 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- [ -n "$DEBUG" ] && set -x
4
- set -e
5
- set -o pipefail
6
-
7
- SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
8
- PROJECT_DIR="$( cd "$SCRIPT_DIR/../../.." && pwd )"
9
-
10
- cd "$PROJECT_DIR"
11
-
12
- ./go spec