iterm_cli 1.0.3 → 1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ef00a0f6bc21b02fcfffffda443665121e392889
4
- data.tar.gz: c39b513018eceeb2ae7f672fe71c7769c9388883
2
+ SHA256:
3
+ metadata.gz: bfba25d6ae26ec4c50b17a971cedbb1bf50635bb740bf1b1317e098266038c5b
4
+ data.tar.gz: e26a2512bffc77d442b3fcfdc2077e4e3e8e6720818956617fa3d710be7211a1
5
5
  SHA512:
6
- metadata.gz: 684dc54eb10dfb22259fdfcabee8e608bab5081d03fde55f921061ecc030a9b4b45827cb7f4a9ee5c358086c25fbea2ca76e137d889c6c7e4354ee798f0e6387
7
- data.tar.gz: b9343055ffb8a5efef3bdf2ef2f93ee1be4d3185bb1a03a1931ea3f57d75cd97a217690fdcf4b6638744116653169b3a284336f66f8efa777a8fc5b52af3da4d
6
+ metadata.gz: becbd85bb9a7dff570d7fc8b66a54d5cd6be9b6a243485950afe2a9adfc454780e5b1357c4c956d5839dc7e4c1782390b3993148fb09fe4c3299a9a1e307fe2b
7
+ data.tar.gz: 995e8b6d1e062e5ec272f35506e49c7bed1299eaa2a658752df7f38f4b6f1f9b74032381c3f61081a29d49dc618abf59f4378f374793db14ce20d1a2eb7ce40e
data/.gitignore CHANGED
@@ -1,6 +1,5 @@
1
1
  /.bundle/
2
2
  /.yardoc
3
- /Gemfile.lock
4
3
  /_yardoc/
5
4
  /coverage/
6
5
  /doc/
data/.rubocop.yml ADDED
@@ -0,0 +1,133 @@
1
+ AllCops:
2
+ NewCops: disable
3
+ Exclude:
4
+ - bin/*
5
+ - node_modules/**/*
6
+
7
+ Layout/CaseIndentation:
8
+ EnforcedStyle: end
9
+
10
+ Layout/EndAlignment:
11
+ EnforcedStyleAlignWith: variable
12
+
13
+ Layout/EmptyLinesAroundAccessModifier:
14
+ EnforcedStyle: only_before
15
+
16
+ Layout/SpaceInLambdaLiteral:
17
+ EnforcedStyle: require_space
18
+
19
+ Layout/SpaceInsideBlockBraces:
20
+ SpaceBeforeBlockParameters: false
21
+
22
+ Layout/SpaceInsideHashLiteralBraces:
23
+ EnforcedStyle: no_space
24
+
25
+ Metrics/AbcSize:
26
+ Enabled: false
27
+
28
+ Metrics/BlockLength:
29
+ Enabled: false
30
+
31
+ Metrics/ClassLength:
32
+ Enabled: false
33
+
34
+ Metrics/CyclomaticComplexity:
35
+ Enabled: false
36
+
37
+ Layout/LineLength:
38
+ Enabled: false
39
+
40
+ Metrics/MethodLength:
41
+ Enabled: false
42
+
43
+ Metrics/ModuleLength:
44
+ Enabled: false
45
+
46
+ Metrics/PerceivedComplexity:
47
+ Enabled: false
48
+
49
+ Naming/HeredocDelimiterNaming:
50
+ Enabled: false
51
+
52
+ Naming/PredicatePrefix:
53
+ Enabled: false
54
+
55
+ Naming/MethodParameterName:
56
+ Enabled: false
57
+
58
+ Style/Alias:
59
+ EnforcedStyle: prefer_alias_method
60
+
61
+ Style/AsciiComments:
62
+ Enabled: false
63
+
64
+ Style/BlockDelimiters:
65
+ Enabled: false
66
+
67
+ Style/Documentation:
68
+ Enabled: false
69
+
70
+ Style/EmptyCaseCondition:
71
+ Enabled: false
72
+
73
+ Style/EmptyMethod:
74
+ EnforcedStyle: expanded
75
+
76
+ Style/FrozenStringLiteralComment:
77
+ Enabled: false
78
+
79
+ Style/HashSyntax:
80
+ Exclude:
81
+ - Rakefile
82
+ - "**/*.rake"
83
+
84
+ Style/Lambda:
85
+ EnforcedStyle: literal
86
+
87
+ Style/IfUnlessModifier:
88
+ Enabled: false
89
+
90
+ Style/MultilineBlockChain:
91
+ Enabled: false
92
+
93
+ Style/NumericLiterals:
94
+ Enabled: false
95
+
96
+ Style/NumericPredicate:
97
+ Enabled: false
98
+
99
+ Style/PercentLiteralDelimiters:
100
+ PreferredDelimiters:
101
+ '%i': '()'
102
+ '%w': '()'
103
+ '%r': '()'
104
+
105
+ Style/PerlBackrefs:
106
+ Enabled: false
107
+
108
+ Style/SpecialGlobalVars:
109
+ Enabled: false
110
+
111
+ Style/StringConcatenation:
112
+ Enabled: false
113
+
114
+ Style/StringLiterals:
115
+ EnforcedStyle: double_quotes
116
+
117
+ Style/StringLiteralsInInterpolation:
118
+ EnforcedStyle: double_quotes
119
+
120
+ Style/SymbolArray:
121
+ Enabled: false
122
+
123
+ Style/TrailingCommaInArguments:
124
+ EnforcedStyleForMultiline: consistent_comma
125
+
126
+ Style/TrailingCommaInArrayLiteral:
127
+ EnforcedStyleForMultiline: consistent_comma
128
+
129
+ Style/TrailingCommaInHashLiteral:
130
+ EnforcedStyleForMultiline: consistent_comma
131
+
132
+ Style/ZeroLengthPredicate:
133
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # CHANGELOG
2
2
 
3
- ## v1.0.3 - 2017-04-28
3
+ ## v1.1.0 (2026-09-25)
4
+
5
+ - Fall back to `Procfile` when `.iterm-sessions` is not present.
6
+ - Drop support for Ruby versions older than 3.4.4.
7
+
8
+ ## v1.0.4 (2019-11-27)
9
+
10
+ - Add `-l` option to `$SHELL` when `iterm new-session` is invoked with no argument.
11
+
12
+ ## v1.0.3 (2017-04-28)
4
13
 
5
14
  - First release.
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in iterm_cli.gemspec
4
4
  gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,100 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ iterm_cli (1.1.0)
5
+ thor (~> 1.5.0)
6
+ thor-zsh_completion (~> 0.1.1)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ ast (2.4.3)
12
+ diff-lcs (1.6.2)
13
+ json (3.0.2)
14
+ language_server-protocol (3.17.0.6)
15
+ lint_roller (1.1.0)
16
+ parallel (2.2.0)
17
+ parser (3.3.12.0)
18
+ ast (~> 2.4.1)
19
+ racc
20
+ prism (1.9.0)
21
+ racc (1.8.1)
22
+ rainbow (3.1.1)
23
+ rake (10.5.0)
24
+ regexp_parser (2.13.0)
25
+ rspec (3.13.2)
26
+ rspec-core (~> 3.13.0)
27
+ rspec-expectations (~> 3.13.0)
28
+ rspec-mocks (~> 3.13.0)
29
+ rspec-core (3.13.6)
30
+ rspec-support (~> 3.13.0)
31
+ rspec-expectations (3.13.5)
32
+ diff-lcs (>= 1.2.0, < 2.0)
33
+ rspec-support (~> 3.13.0)
34
+ rspec-mocks (3.13.8)
35
+ diff-lcs (>= 1.2.0, < 2.0)
36
+ rspec-support (~> 3.13.0)
37
+ rspec-support (3.13.7)
38
+ rubocop (1.91.0)
39
+ json (>= 2.3)
40
+ language_server-protocol (~> 3.17.0.2)
41
+ lint_roller (~> 1.1.0)
42
+ parallel (>= 1.10)
43
+ parser (>= 3.3.0.2)
44
+ rainbow (>= 2.2.2, < 4.0)
45
+ regexp_parser (>= 2.9.3, < 3.0)
46
+ rubocop-ast (>= 1.49.0, < 2.0)
47
+ ruby-progressbar (~> 1.7)
48
+ unicode-display_width (>= 2.4.0, < 4.0)
49
+ rubocop-ast (1.50.0)
50
+ parser (>= 3.3.7.2)
51
+ prism (~> 1.7)
52
+ ruby-progressbar (1.13.0)
53
+ thor (1.5.0)
54
+ thor-zsh_completion (0.1.10)
55
+ thor (< 2)
56
+ unicode-display_width (3.3.0)
57
+ unicode-emoji (~> 4.3)
58
+ unicode-emoji (4.3.0)
59
+
60
+ PLATFORMS
61
+ arm64-darwin-25
62
+ ruby
63
+
64
+ DEPENDENCIES
65
+ bundler (~> 4.0)
66
+ iterm_cli!
67
+ rake (~> 10.0)
68
+ rspec
69
+ rubocop
70
+
71
+ CHECKSUMS
72
+ ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
73
+ bundler (4.1.0.beta1) sha256=8a2dac8ca276ff4eff5efc2c6457b0044080fc1e431534ad7c5cc6187232b800
74
+ diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
75
+ iterm_cli (1.1.0)
76
+ json (3.0.2) sha256=8e6d7e7b11384c21230430cef90b71f14849a34a1f4452796670f7c981bd19df
77
+ language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0
78
+ lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
79
+ parallel (2.2.0) sha256=e1059c5fd7b649558a0aec38a769f06a42942bdb40503d005a59c352fe011cd8
80
+ parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828
81
+ prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
82
+ racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
83
+ rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
84
+ rake (10.5.0) sha256=2b55a1ad44b5c945719d8a97c302a316af770b835187d12143e83069df5a8a49
85
+ regexp_parser (2.13.0) sha256=d105d95d2138954e73914d2fbfb3d0a8f8605a49a3e89864c32e78b9107cb770
86
+ rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
87
+ rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d
88
+ rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
89
+ rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47
90
+ rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
91
+ rubocop (1.91.0) sha256=9c82b7bf391c5d7e3798c5b9996e22a1fe3bd7468e351dfdeb96140c058296d0
92
+ rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db
93
+ ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
94
+ thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73
95
+ thor-zsh_completion (0.1.10) sha256=7e3e991954d8376b78ed24757c15202ee492239e0bacfb5d21a698269228b130
96
+ unicode-display_width (3.3.0) sha256=4b7aa66a4b11db50f6f7e98411215cd0dd10eaecb665d36eec5bcacb3fa0b613
97
+ unicode-emoji (4.3.0) sha256=11c02fa73290378c066bb0562cd4c87d8e1b706fbbe0059ca12746a4244de8ce
98
+
99
+ BUNDLED WITH
100
+ 4.1.0.beta1
data/README.md CHANGED
@@ -9,6 +9,10 @@ iTerm2 Build 3.0.4 or later.
9
9
 
10
10
  ## Installation
11
11
 
12
+ $ gem install iterm_cli
13
+
14
+ Or
15
+
12
16
  $ git clone https://github.com/labocho/iterm_cli
13
17
  $ cd iterm_cli
14
18
  $ rake install
@@ -44,8 +48,8 @@ iTerm2 Build 3.0.4 or later.
44
48
 
45
49
  ### sessions
46
50
 
47
- `iterm sessions` manages multi sessions by file named `.iterm-sessions` in current directory.
48
- `.iterm-sessions` should be written in YAML (http://yaml.org/).
51
+ `iterm sessions` manages multiple sessions using a `.iterm-sessions` or `Procfile` configuration file in the current directory.
52
+ The configuration file should be written in YAML (http://yaml.org/).
49
53
 
50
54
  # keys are session names
51
55
  console:
@@ -93,4 +97,3 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/laboch
93
97
  ## License
94
98
 
95
99
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
96
-
data/bin/rspec ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rspec' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
12
+
13
+ require "rubygems"
14
+ require "bundler/setup"
15
+
16
+ load Gem.bin_path("rspec-core", "rspec")
data/bin/rubocop ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rubocop' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require "pathname"
12
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
+ Pathname.new(__FILE__).realpath)
14
+
15
+ bundle_binstub = File.expand_path("../bundle", __FILE__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require "rubygems"
27
+ require "bundler/setup"
28
+
29
+ load Gem.bin_path("rubocop", "rubocop")
data/iterm_cli.gemspec CHANGED
@@ -1,7 +1,6 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ lib = File.expand_path("lib", __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'iterm_cli/version'
3
+ require "iterm_cli/version"
5
4
 
6
5
  Gem::Specification.new do |spec|
7
6
  spec.name = "iterm_cli"
@@ -9,20 +8,23 @@ Gem::Specification.new do |spec|
9
8
  spec.authors = ["labocho"]
10
9
  spec.email = ["labocho@penguinlab.jp"]
11
10
 
12
- spec.summary = %q{Command line interface for iTerm2}
13
- spec.description = %q{Command line interface for iTerm2}
11
+ spec.summary = "Command line interface for iTerm2"
12
+ spec.description = "Command line interface for iTerm2"
14
13
  spec.homepage = "https://github.com/labocho/iterm_cli"
15
14
  spec.license = "MIT"
16
15
 
17
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
16
+ spec.files = `git ls-files -z`.split("\x0").reject {|f| f.match(%r{^(test|spec|features)/}) }
18
17
  spec.bindir = "exe"
19
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
18
+ spec.executables = spec.files.grep(%r(^exe/)) {|f| File.basename(f) }
20
19
  spec.require_paths = ["lib"]
21
20
 
22
- spec.add_dependency "thor", "~> 0.19.1"
21
+ spec.required_ruby_version = ">= 3.4.4"
22
+
23
+ spec.add_dependency "thor", "~> 1.5.0"
23
24
  spec.add_dependency "thor-zsh_completion", "~> 0.1.1"
24
25
 
25
- spec.add_development_dependency "bundler", "~> 1.10"
26
+ spec.add_development_dependency "bundler", "~> 4.0"
26
27
  spec.add_development_dependency "rake", "~> 10.0"
27
28
  spec.add_development_dependency "rspec"
29
+ spec.add_development_dependency "rubocop"
28
30
  end
data/lib/iterm_cli/cli.rb CHANGED
@@ -7,17 +7,17 @@ module ITermCLI
7
7
 
8
8
  desc "start [SESSION_NAME]", "Start all sessions if it's not started"
9
9
  def start(*session_names)
10
- SessionManager.load(".iterm-sessions").start(session_names)
10
+ SessionManager.load(find_iterm_sessions_file!).start(session_names)
11
11
  end
12
12
 
13
13
  desc "kill [SESSION_NAME]", "Kill all sessions if it's started"
14
14
  def kill(*session_names)
15
- SessionManager.load(".iterm-sessions").kill(session_names)
15
+ SessionManager.load(find_iterm_sessions_file!).kill(session_names)
16
16
  end
17
17
 
18
18
  desc "ls", "List sessions"
19
- def ls(*session_names)
20
- SessionManager.load(".iterm-sessions").list
19
+ def ls
20
+ SessionManager.load(find_iterm_sessions_file!).list
21
21
  end
22
22
 
23
23
  map(
@@ -25,6 +25,16 @@ module ITermCLI
25
25
  "k" => "kill",
26
26
  "l" => "ls",
27
27
  )
28
+
29
+ private
30
+ def find_iterm_sessions_file!
31
+ %w(.iterm-sessions Procfile).each do |path|
32
+ return path if File.exist?(path)
33
+ end
34
+
35
+ warn ".iterm-sessions or Procfile required"
36
+ exit 1
37
+ end
28
38
  end
29
39
 
30
40
  class CLI < Thor
@@ -48,7 +58,7 @@ module ITermCLI
48
58
  Terminal::SendKeys.call(keys, target: options.target)
49
59
  end
50
60
 
51
- desc "sessions SUBCOMMAND ...ARGS", "Manage sessions by .iterm-sessions"
61
+ desc "sessions SUBCOMMAND ...ARGS", "Manage sessions by .iterm-sessions (or Procfile)"
52
62
  subcommand "sessions", SessionsCommand
53
63
 
54
64
  map(
@@ -14,8 +14,8 @@ module ITermCLI
14
14
  end
15
15
 
16
16
  def self.load(sessions_file)
17
- unless File.exists?(sessions_file)
18
- $stderr.puts "#{sessions_file} not found"
17
+ unless File.exist?(sessions_file)
18
+ warn "#{sessions_file} not found"
19
19
  exit 1
20
20
  end
21
21
  sessions = YAML.load_file(sessions_file)
@@ -31,10 +31,10 @@ module ITermCLI
31
31
  def start(names)
32
32
  sessions_will_start = select_sessions_by_names(names)
33
33
  existed = existed_session_names
34
- sessions_will_start.reject!{|s| existed.include?(s.name) }
34
+ sessions_will_start.reject! {|s| existed.include?(s.name) }
35
35
 
36
36
  mutex = Mutex.new
37
- sessions_will_start.map{|session|
37
+ sessions_will_start.map {|session|
38
38
  Thread.new {
39
39
  mutex.synchronize { $stdout.puts "Start #{session.name}" }
40
40
  Terminal::NewSession.call([session.command], name: session.name)
@@ -45,10 +45,10 @@ module ITermCLI
45
45
  def kill(names)
46
46
  sessions_will_kill = select_sessions_by_names(names)
47
47
  existed = existed_session_names
48
- sessions_will_kill.select!{|s| existed.include?(s.name) }
48
+ sessions_will_kill.select! {|s| existed.include?(s.name) }
49
49
 
50
50
  mutex = Mutex.new
51
- sessions_will_kill.map{|session|
51
+ sessions_will_kill.map {|session|
52
52
  Thread.new {
53
53
  mutex.synchronize { $stdout.puts "Kill #{session.name}" }
54
54
  Terminal::SendKeys.call(session.kill.split(" "), target: session.name)
@@ -58,8 +58,8 @@ module ITermCLI
58
58
 
59
59
  def list
60
60
  existed = existed_session_names
61
- column_width = sessions.values.map{|s| s.name.length }.max
62
- sessions.values.each do |session|
61
+ column_width = sessions.values.map {|s| s.name.length }.max
62
+ sessions.each_value do |session|
63
63
  prefix = if existed.include?(session.name)
64
64
  "*"
65
65
  else
@@ -78,7 +78,7 @@ module ITermCLI
78
78
  names.each do |name|
79
79
  s = sessions[name]
80
80
  unless s
81
- $stderr.puts "#{name} not defined"
81
+ warn "#{name} not defined"
82
82
  exit 1
83
83
  end
84
84
  r << s
@@ -88,8 +88,7 @@ module ITermCLI
88
88
  end
89
89
 
90
90
  def parse_sessions(sessions)
91
- sessions.inject({}) do |h, (k, v)|
92
- s = {name: k}
91
+ sessions.each_with_object({}) do |(k, v), h|
93
92
  session = case v
94
93
  when String
95
94
  Session.new(name: k, command: v, kill: "C-c")
@@ -97,7 +96,6 @@ module ITermCLI
97
96
  Session.new(v.merge(name: k))
98
97
  end
99
98
  h[k] = session
100
- h
101
99
  end
102
100
  end
103
101
 
@@ -8,15 +8,15 @@ module ITermCLI
8
8
  new.call(*args)
9
9
  end
10
10
 
11
- def call(*args)
11
+ def call(*_args)
12
12
  raise NotImplementedError
13
13
  end
14
14
 
15
15
  def osascript(source, arg = {})
16
16
  out, err, status = Open3.capture3("/usr/bin/osascript", "-l", "JavaScript", "-e", source, arg.to_json)
17
17
  unless status.success?
18
- $stderr.puts "osascript exited with #{status.to_i}"
19
- $stderr.puts err
18
+ warn "osascript exited with #{status.to_i}"
19
+ warn err
20
20
  exit status.to_i
21
21
  end
22
22
  out
@@ -1,7 +1,7 @@
1
1
  module ITermCLI
2
2
  module Terminal
3
3
  class ListSessions < Function
4
- SOURCE = <<-JS
4
+ SOURCE = <<-JS.freeze
5
5
  function run(argv) {
6
6
  var iTerm = Application("iTerm2");
7
7
  var window = iTerm.currentWindow();
@@ -1,8 +1,9 @@
1
1
  require "shellwords"
2
+ require "tmpdir"
2
3
  module ITermCLI
3
4
  module Terminal
4
5
  class NewSession < Function
5
- SOURCE = <<-JS
6
+ SOURCE = <<-JS.freeze
6
7
  function run(argv) {
7
8
  var options = JSON.parse(argv[0]);
8
9
  var iTerm = Application("iTerm2");
@@ -23,7 +24,7 @@ module ITermCLI
23
24
  executable = command.shellsplit.first
24
25
 
25
26
  unless which(executable)
26
- $stderr.puts "No such file or directory: #{executable}"
27
+ warn "No such file or directory: #{executable}"
27
28
  exit 1
28
29
  end
29
30
 
@@ -50,7 +51,7 @@ module ITermCLI
50
51
  def join_command(command_and_args)
51
52
  case command_and_args.size
52
53
  when 0
53
- ENV["SHELL"]
54
+ ENV["SHELL"] + " -l"
54
55
  when 1
55
56
  command_and_args[0]
56
57
  else
@@ -59,12 +60,12 @@ module ITermCLI
59
60
  end
60
61
 
61
62
  def set_env_lines
62
- ENV.reject{|k, v| k == "_" }.map{|kv| "export " + kv.map(&:shellescape).join("=") }
63
+ ENV.reject {|k, _v| k == "_" }.map {|kv| "export " + kv.map(&:shellescape).join("=") }
63
64
  end
64
65
 
65
66
  def write_script(script)
66
67
  filename = Dir.mktmpdir("iterm-new-session") + "/iterm-new-session.sh"
67
- open(filename, "w"){|f| f.write(script) }
68
+ File.write(filename, script)
68
69
  filename
69
70
  end
70
71
  end
@@ -1,7 +1,7 @@
1
1
  module ITermCLI
2
2
  module Terminal
3
3
  class SendKeys < Function
4
- SOURCE = <<-JS
4
+ SOURCE = <<-JS.freeze
5
5
  function run(argv) {
6
6
  var options = JSON.parse(argv[0]);
7
7
  var iTerm = Application("iTerm2");
@@ -23,7 +23,7 @@ module ITermCLI
23
23
  options = {target: nil}.merge(options)
24
24
  target = options[:target]
25
25
 
26
- text = keys.map{|t|
26
+ text = keys.map {|t|
27
27
  case t
28
28
  when /\AC-(.)$\z/
29
29
  ($1.ord & 0b00011111).chr
@@ -1,3 +1,3 @@
1
1
  module ITermCLI
2
- VERSION = "1.0.3"
2
+ VERSION = "1.1.0".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iterm_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - labocho
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2017-04-28 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: thor
@@ -16,14 +15,14 @@ dependencies:
16
15
  requirements:
17
16
  - - "~>"
18
17
  - !ruby/object:Gem::Version
19
- version: 0.19.1
18
+ version: 1.5.0
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - "~>"
25
24
  - !ruby/object:Gem::Version
26
- version: 0.19.1
25
+ version: 1.5.0
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: thor-zsh_completion
29
28
  requirement: !ruby/object:Gem::Requirement
@@ -44,14 +43,14 @@ dependencies:
44
43
  requirements:
45
44
  - - "~>"
46
45
  - !ruby/object:Gem::Version
47
- version: '1.10'
46
+ version: '4.0'
48
47
  type: :development
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - "~>"
53
52
  - !ruby/object:Gem::Version
54
- version: '1.10'
53
+ version: '4.0'
55
54
  - !ruby/object:Gem::Dependency
56
55
  name: rake
57
56
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +79,20 @@ dependencies:
80
79
  - - ">="
81
80
  - !ruby/object:Gem::Version
82
81
  version: '0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: rubocop
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
83
96
  description: Command line interface for iTerm2
84
97
  email:
85
98
  - labocho@penguinlab.jp
@@ -90,14 +103,18 @@ extra_rdoc_files: []
90
103
  files:
91
104
  - ".gitignore"
92
105
  - ".rspec"
106
+ - ".rubocop.yml"
93
107
  - ".travis.yml"
94
108
  - CHANGELOG.md
95
109
  - CODE_OF_CONDUCT.md
96
110
  - Gemfile
111
+ - Gemfile.lock
97
112
  - LICENSE.txt
98
113
  - README.md
99
114
  - Rakefile
100
115
  - bin/console
116
+ - bin/rspec
117
+ - bin/rubocop
101
118
  - bin/setup
102
119
  - exe/iterm
103
120
  - iterm_cli.gemspec
@@ -114,7 +131,6 @@ homepage: https://github.com/labocho/iterm_cli
114
131
  licenses:
115
132
  - MIT
116
133
  metadata: {}
117
- post_install_message:
118
134
  rdoc_options: []
119
135
  require_paths:
120
136
  - lib
@@ -122,16 +138,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
122
138
  requirements:
123
139
  - - ">="
124
140
  - !ruby/object:Gem::Version
125
- version: '0'
141
+ version: 3.4.4
126
142
  required_rubygems_version: !ruby/object:Gem::Requirement
127
143
  requirements:
128
144
  - - ">="
129
145
  - !ruby/object:Gem::Version
130
146
  version: '0'
131
147
  requirements: []
132
- rubyforge_project:
133
- rubygems_version: 2.5.1
134
- signing_key:
148
+ rubygems_version: 4.0.3
135
149
  specification_version: 4
136
150
  summary: Command line interface for iTerm2
137
151
  test_files: []