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 +4 -4
- data/lib/hiiro/tasks.rb +23 -4
- data/lib/hiiro/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 28013aa2de1c98ae4ecd1a166635b4444f0c2753fe830aeb94d796cddd607b45
|
|
4
|
+
data.tar.gz: 17ad399a86996122313f9fb3a78aad3ea732bc8ab1a04fb735ba0b001486e3ab
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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 |
|
|
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