linear-cli 0.8.2 → 0.8.6

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: 837207569539a03287d8a08ad711c06698324a29b290d2fcc87c908157e4e555
4
- data.tar.gz: 0b28e78a18942b06790fce45c6a8e70aca03774cdd9b58dff3bf1a60bba6c3ec
3
+ metadata.gz: ab8ebfb7eabbfc9974cadc1255b77882b07a5b77b7311b7c28f32ab05cc6d36d
4
+ data.tar.gz: 4a113e8634b37e1cce2a0eb8f42319dfbe17dcf799da754cbdc3070464101d82
5
5
  SHA512:
6
- metadata.gz: 0e891850b2717b08d514291f00cff3f78ce8855ea46d1abc7037810cdf6082d182b3a8ddfe8f61b38ff0cf9ea5046711673347c42318e37cbab7097a40f84905
7
- data.tar.gz: 4d733991e15f453ada7cfddbc4d0911fcb5703e928272db9944b083cab8c88739b7042d8991939bad636947f129387fa5f90887a65efb382e82066332a5c0f50
6
+ metadata.gz: d6509b777cc1629deac09377df81239df88639480f28910bf84c84504f050a2536dffc2229438a8e6555dccab423410ed02cc7deb039caa7170fd5cb946ca63d
7
+ data.tar.gz: 64b15071808806cd2358b50e3768f1297e0dd09ce461640c14266c5329e4d75e160042438e93700f999b4e78214256874a10ae33369dfc3394922f6077f95235
data/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.8.6] - 2024-02-06
6
+ ### Fixed
7
+ - Fixed completion for lc alias (@bougyman)
8
+
9
+ ## [0.8.4] - 2024-02-06
10
+ ### Added
11
+ - Added version command (@bougyman)
12
+
5
13
  ## [0.8.1] - 2024-02-06
6
14
  ### Fixed
7
15
  - Fixed problem with setting verbosity (@bougyman)
@@ -59,8 +67,10 @@
59
67
  ### Added
60
68
  - Added new changelog management system (changelog-rb) (@bougyman)
61
69
 
62
- [Unreleased]: https://github.com/rubyists/linear-cli/compare/0.8.1...HEAD
63
- [0.8.1]: https://github.com/rubyists/linear-cli/compare/v0.8.0...0.8.1
70
+ [Unreleased]: https://github.com/rubyists/linear-cli/compare/0.8.6...HEAD
71
+ [0.8.6]: https://github.com/rubyists/linear-cli/compare/v0.8.4...0.8.6
72
+ [0.8.4]: https://github.com/rubyists/linear-cli/compare/v0.8.1...v0.8.4
73
+ [0.8.1]: https://github.com/rubyists/linear-cli/compare/v0.8.0...v0.8.1
64
74
  [0.8.0]: https://github.com/rubyists/linear-cli/compare/v0.7.7...v0.8.0
65
75
  [0.7.7]: https://github.com/rubyists/linear-cli/compare/v0.7.5...v0.7.7
66
76
  [0.7.5]: https://github.com/rubyists/linear-cli/compare/v0.7.3...v0.7.5
@@ -0,0 +1,4 @@
1
+ type: Added
2
+ title: >
3
+ Added version command
4
+ author: bougyman
@@ -0,0 +1 @@
1
+ date: 2024-02-06
@@ -0,0 +1,4 @@
1
+ type: Fixed
2
+ title: >
3
+ Fixed completion for lc alias
4
+ author: bougyman
@@ -0,0 +1 @@
1
+ date: 2024-02-06
data/exe/scripts/lc.sh CHANGED
@@ -3,6 +3,10 @@ if [ "$#" -eq 0 ]; then
3
3
  printf "No subcommand provided, defaulting to 'lc issue list'\nlc --help to see subcommands\n" >&2
4
4
  exec linear-cli issue list
5
5
  fi
6
+ if [[ "$*" =~ --version ]]
7
+ then
8
+ exec linear-cli version
9
+ fi
6
10
  if [[ "$*" =~ --help|-h ]]
7
11
  then
8
12
  printf "Each subcommand has its own help, use 'lc <subcommand> --help' to see it\n" >&2
@@ -26,15 +26,18 @@ module Rubyists
26
26
  logger.trace "Calling #{self.class} with #{method_args}"
27
27
  super(**method_args)
28
28
  rescue SmellsBad => e
29
- logger.error e.message
30
- exit 1
29
+ TTY::Prompt.new.error e.message
30
+ TTY::Prompt.new.error '** This smells bad! Bailing. **'
31
+ exit 22
31
32
  rescue NotFoundError => e
32
- logger.error e.message
33
+ TTY::Prompt.new.error e.message
34
+ TTY::Prompt.new.error '** Record not found, Cannot Continue **'
33
35
  exit 66
34
36
  rescue StandardError => e
35
- logger.error e.message
36
- logger.error e.backtrace.join("\n") if Rubyists::Linear.verbosity.positive?
37
- exit 5
37
+ TTY::Prompt.new.error "What the heck is this? #{e}"
38
+ TTY::Prompt.new.error '** WTH? Cannot Continue **'
39
+ logger.error e.backtrace.join("\n") if debug.positive?
40
+ exit 88
38
41
  end
39
42
  end
40
43
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Rubyists
4
4
  module Linear
5
- VERSION = '0.8.2'
5
+ VERSION = '0.8.6'
6
6
  end
7
7
  end
data/lib/linear/cli.rb CHANGED
@@ -7,6 +7,31 @@ require 'semantic_logger'
7
7
  require 'tty-markdown'
8
8
  require 'tty-prompt'
9
9
 
10
+ module Dry
11
+ class CLI
12
+ module Completion
13
+ # Monkeypatching the Generator just to add our 'lc' alias :(
14
+ class Generator
15
+ def call(shell:, include_aliases: false, out: StringIO.new) # rubocop:disable Metrics/MethodLength
16
+ raise ArgumentError, 'Unknown shell' unless SUPPORTED_SHELLS.include?(shell)
17
+
18
+ if shell == ZSH
19
+ out.puts '# enable bash completion support, see https://github.com/dannyben/completely#completions-in-zsh'
20
+ out.puts 'autoload -Uz +X compinit && compinit'
21
+ out.puts 'autoload -Uz +X bashcompinit && bashcompinit'
22
+ end
23
+
24
+ out.puts Completely::Completions.new(
25
+ Input.new(@registry, @program_name).call(include_aliases:)
26
+ ).script
27
+ out.puts 'complete -F _linear-cli_completions lc'
28
+ out.string
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+
10
35
  # The Rubyists module is the top-level namespace for all Rubyists projects
11
36
  module Rubyists
12
37
  module Linear
@@ -54,12 +79,13 @@ module Rubyists
54
79
  end
55
80
  end
56
81
 
57
- Pathname.new(__FILE__).dirname.join('cli').glob('*.rb').each do |file|
82
+ # Load CLI Helpers/libraries
83
+ Pathname.new(__dir__).join('cli').glob('*.rb').each do |file|
58
84
  require file.expand_path
59
85
  end
60
86
 
61
- # Load all our commands
62
- Pathname.new(__FILE__).dirname.join('commands').glob('*.rb').each do |file|
87
+ # Load all our commands and subcommands
88
+ Pathname.new(__dir__).join('commands').glob('*.rb').each do |file|
63
89
  require file.expand_path
64
90
  end
65
91
 
@@ -67,6 +93,7 @@ module Rubyists
67
93
  # Open this back up to register 3rd party/other commands
68
94
  module CLI
69
95
  register 'completion', Dry::CLI::Completion::Command[self]
96
+ # NOTE: We have monkeypatched the Generator to add our 'lc' alias
70
97
  end
71
98
  end
72
99
  end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'semantic_logger'
4
+
5
+ module Rubyists
6
+ # Namespace for Linear
7
+ module Linear
8
+ M :user
9
+ # Namespace for CLI
10
+ module CLI
11
+ Version = Class.new Dry::CLI::Command
12
+ # The Version command
13
+ class Version
14
+ include SemanticLogger::Loggable
15
+ include Rubyists::Linear::CLI::CommonOptions
16
+
17
+ desc 'Show version'
18
+
19
+ def call(**)
20
+ logger.debug 'Version called'
21
+ TTY::Prompt.new.say Rubyists::Linear::VERSION
22
+ end
23
+ end
24
+ register 'version', Version, aliases: %w[v]
25
+ end
26
+ end
27
+ end
data/lib/linear.rb CHANGED
@@ -1,6 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'pathname'
4
+ require 'semantic_logger'
5
+ SemanticLogger.default_level = :info
6
+ SemanticLogger.add_appender(io: $stderr, formatter: :color)
4
7
 
5
8
  # Add the / operator for path separation
6
9
  class Pathname
@@ -12,6 +15,7 @@ end
12
15
  module Rubyists
13
16
  # Namespace for Linear classes
14
17
  module Linear
18
+ include SemanticLogger::Loggable
15
19
  # rubocop:disable Layout/SpaceAroundOperators
16
20
  ROOT = (Pathname(__FILE__)/'../..').expand_path
17
21
  LIBROOT = ROOT/:lib/:linear
@@ -42,16 +46,6 @@ module Rubyists
42
46
  @verbosity ||= 0
43
47
  end
44
48
 
45
- def self.logger
46
- return @logger if @logger
47
-
48
- require 'semantic_logger'
49
-
50
- SemanticLogger.default_level = :info
51
- SemanticLogger.add_appender(io: $stderr, formatter: :color)
52
- @logger = SemanticLogger['Rubyists::Linear']
53
- end
54
-
55
49
  def self.verbosity=(debug)
56
50
  return verbosity unless debug
57
51
 
data/oci/Containerfile CHANGED
@@ -12,7 +12,7 @@ RUN apk --update add bash ruby-dev build-base git sqlite-dev
12
12
  WORKDIR $APP_ROOT
13
13
 
14
14
  COPY . $APP_ROOT
15
- RUN bundle install && bundle exec rake build
15
+ RUN gem i semantic_logger && bundle install && bundle exec rake build
16
16
 
17
17
  CMD %w[bundle exec lc]
18
18
 
@@ -28,5 +28,5 @@ RUN apk --update --no-cache add $PACKAGES
28
28
  COPY --from=build-env /app/pkg /tmp
29
29
  RUN ls /tmp/*.gem && gem install /tmp/*.gem
30
30
 
31
- CMD %w[bundle exec lc]
31
+ CMD ["bundle", "exec", "lc"]
32
32
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: linear-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.8.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tj (bougyman) Vanderpoel
@@ -238,6 +238,10 @@ files:
238
238
  - changelog/0.8.0/tag.yml
239
239
  - changelog/0.8.1/fixed_problem_with_setting_verbosity.yml
240
240
  - changelog/0.8.1/tag.yml
241
+ - changelog/0.8.4/added_version_command.yml
242
+ - changelog/0.8.4/tag.yml
243
+ - changelog/0.8.6/fixed_completion_for_lc_alias.yml
244
+ - changelog/0.8.6/tag.yml
241
245
  - changelog/unreleased/.gitkeep
242
246
  - cinemas/listings.cinema
243
247
  - cinemas/listings.cinema.gif
@@ -270,6 +274,7 @@ files:
270
274
  - lib/linear/commands/issue/update.rb
271
275
  - lib/linear/commands/team.rb
272
276
  - lib/linear/commands/team/list.rb
277
+ - lib/linear/commands/version.rb
273
278
  - lib/linear/commands/whoami.rb
274
279
  - lib/linear/exceptions.rb
275
280
  - lib/linear/fragments.rb