linear-cli 0.8.2 → 0.8.6

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 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