hiiro 0.1.219 → 0.1.220

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: 2fd3f8ae4acfb1fa951769555cd0503a9038070f2a5f630c455363e5ab7f4f08
4
- data.tar.gz: '03231287cddeded344610db00c4b28e144ace9230d3463f5503231b93533d909'
3
+ metadata.gz: 28013aa2de1c98ae4ecd1a166635b4444f0c2753fe830aeb94d796cddd607b45
4
+ data.tar.gz: 17ad399a86996122313f9fb3a78aad3ea732bc8ab1a04fb735ba0b001486e3ab
5
5
  SHA512:
6
- metadata.gz: c1a8c762c7d82202bc791eaddfa49bfcdf1cdef7d1ab938a1388f3fd0df6fd495a02d2ce96c7f773ed44b93adfec182aa95752235603374da0fe336453366d83
7
- data.tar.gz: d8935dd8119922a2f714a173236e28a244dc84281e9b0f7ad0881a5e664fd17d60cbeb71a7a1ac3fb372f8ffb50ae7485edb684c3ce01f9f1992fa915fa76992
6
+ metadata.gz: 7e15908fda49530377d57b400f50439a2dd9a28b24820dc28a45e20e74df150011e981624308c271ea0dcff9f86249c68ad900c6909ed5ee61d5a6e8fe195352
7
+ data.tar.gz: c2ba6cb131f38b6aaa37655fc976e597e2fe1c1f0b605df431797ce4ffc2bd8f66ca086390d5691d0a1aafb2e9c4ea93ecb7a5ad581bda89f1388dfd57f8824a
data/lib/hiiro/tasks.rb CHANGED
@@ -132,7 +132,7 @@ class Hiiro
132
132
  puts "Started task '#{task_name}' in worktree '#{subtree_name}'"
133
133
  end
134
134
 
135
- def switch_to_task(task, app_name: nil)
135
+ def switch_to_task(task, app_name: nil, force: false)
136
136
  unless task
137
137
  puts "Task not found"
138
138
  return
@@ -145,6 +145,11 @@ class Hiiro
145
145
  session_exists = system('tmux', 'has-session', '-t', session_name, err: File::NULL)
146
146
 
147
147
  if session_exists
148
+ session = environment.find_session(session_name)
149
+ if session&.attached? && !force
150
+ puts "Session '#{session_name}' is already attached. Use -f to switch anyway."
151
+ exit 1
152
+ end
148
153
  hiiro.start_tmux_session(session_name)
149
154
  else
150
155
  base_dir = tree_path
@@ -656,18 +661,28 @@ class Hiiro
656
661
  tm.start_task(task_name, app_name: app_name, sparse_groups: opts.sparse)
657
662
  end
658
663
 
659
- h.add_subcmd(:switch) do |task_name=nil, app_name=nil|
664
+ h.add_subcmd(:switch) do |*raw_args|
665
+ opts = Hiiro::Options.parse(raw_args) do
666
+ option(:force, short: :f, type: :flag, desc: 'Switch even if session is already attached')
667
+ end
668
+ task_name = opts.args[0]
669
+ app_name = opts.args[1]
670
+
660
671
  if task_name.nil?
661
672
  selected = tm.select_task_interactive
662
673
  next unless selected
663
674
 
664
675
  case selected
665
676
  when Hiiro::Tmux::Session
677
+ if selected.attached? && !opts.force
678
+ puts "Session '#{selected.name}' is already attached. Use -f to switch anyway."
679
+ exit 1
680
+ end
666
681
  h.start_tmux_session(selected.name)
667
682
  puts "Switched to session '#{selected.name}'"
668
683
  next
669
684
  when Hiiro::Task
670
- tm.switch_to_task(selected, app_name: app_name)
685
+ tm.switch_to_task(selected, app_name: app_name, force: opts.force)
671
686
  next
672
687
  end
673
688
  end
@@ -678,13 +693,17 @@ class Hiiro
678
693
  unless task
679
694
  session = tm.environment.find_session(task_name)
680
695
  if session
696
+ if session.attached? && !opts.force
697
+ puts "Session '#{session.name}' is already attached. Use -f to switch anyway."
698
+ exit 1
699
+ end
681
700
  h.start_tmux_session(session.name)
682
701
  puts "Switched to session '#{session.name}'"
683
702
  next
684
703
  end
685
704
  end
686
705
 
687
- tm.switch_to_task(task, app_name: app_name)
706
+ tm.switch_to_task(task, app_name: app_name, force: opts.force)
688
707
  end
689
708
 
690
709
  h.add_subcmd(:app) do |app_name=nil|
data/lib/hiiro/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Hiiro
2
- VERSION = "0.1.219"
2
+ VERSION = "0.1.220"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hiiro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.219
4
+ version: 0.1.220
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Toyota