hiiro 0.1.179 → 0.1.180
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 +44 -6
- 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: f20a871c83c5a99f070239f734a5b03bff64f88229f16292cee6b80618a7b6c1
|
|
4
|
+
data.tar.gz: 713f2256fb0378a9de8b1888c0e2a1a2e945a7fef7746fc8b5b3b9061ac11ff6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8768803a7e31dda94c85e6ed0cc60c88ff1cee45a635bf7cc7530b4c52f804077f37006ed4cf5d228ce70c8069039a1a8f947232124b180131445f59dc513b22
|
|
7
|
+
data.tar.gz: 00d19f60ce67545fa54d5cb7cc1ac9eab52216b358c4e68f3d1b66fbcfb1fd879bcd29370509d6571d4b90b135708c154933b8057f6c024163d0fd001d595d54
|
data/lib/hiiro/tasks.rb
CHANGED
|
@@ -351,15 +351,29 @@ class Hiiro
|
|
|
351
351
|
else
|
|
352
352
|
environment.all_tasks.sort_by(&:name)
|
|
353
353
|
end
|
|
354
|
-
return nil if task_list.empty?
|
|
355
354
|
|
|
356
|
-
mapping =
|
|
355
|
+
mapping = {}
|
|
356
|
+
|
|
357
|
+
task_list.each do |task|
|
|
357
358
|
display_name = scope == :subtask ? task.short_name : task.name
|
|
358
359
|
line = task.display_line(scope: scope, environment: environment)
|
|
359
|
-
|
|
360
|
+
mapping[line] = { type: :task, name: display_name }
|
|
360
361
|
end
|
|
361
362
|
|
|
362
|
-
|
|
363
|
+
# Add non-task tmux sessions (exclude sessions that belong to tasks)
|
|
364
|
+
if scope == :task
|
|
365
|
+
task_session_names = environment.all_tasks.map(&:session_name)
|
|
366
|
+
extra_sessions = environment.all_sessions.reject { |s| task_session_names.include?(s.name) }
|
|
367
|
+
extra_sessions.sort_by(&:name).each do |session|
|
|
368
|
+
line = format("%-25s (tmux session)", session.name)
|
|
369
|
+
mapping[line] = { type: :session, name: session.name }
|
|
370
|
+
end
|
|
371
|
+
end
|
|
372
|
+
|
|
373
|
+
return nil if mapping.empty?
|
|
374
|
+
|
|
375
|
+
selected = hiiro.fuzzyfind_from_map(mapping)
|
|
376
|
+
selected
|
|
363
377
|
end
|
|
364
378
|
|
|
365
379
|
def value_for_task(task_name = nil, &block)
|
|
@@ -559,10 +573,34 @@ class Hiiro
|
|
|
559
573
|
|
|
560
574
|
h.add_subcmd(:switch) do |task_name=nil, app_name=nil|
|
|
561
575
|
if task_name.nil?
|
|
562
|
-
|
|
563
|
-
next unless
|
|
576
|
+
selected = tm.select_task_interactive
|
|
577
|
+
next unless selected
|
|
578
|
+
|
|
579
|
+
if selected.is_a?(Hash)
|
|
580
|
+
if selected[:type] == :session
|
|
581
|
+
h.start_tmux_session(selected[:name])
|
|
582
|
+
puts "Switched to session '#{selected[:name]}'"
|
|
583
|
+
next
|
|
584
|
+
else
|
|
585
|
+
task_name = selected[:name]
|
|
586
|
+
end
|
|
587
|
+
else
|
|
588
|
+
task_name = selected
|
|
589
|
+
end
|
|
564
590
|
end
|
|
591
|
+
|
|
565
592
|
task = tm.task_by_name(task_name)
|
|
593
|
+
|
|
594
|
+
# If no task found, check for a matching tmux session
|
|
595
|
+
unless task
|
|
596
|
+
session = tm.environment.find_session(task_name)
|
|
597
|
+
if session
|
|
598
|
+
h.start_tmux_session(session.name)
|
|
599
|
+
puts "Switched to session '#{session.name}'"
|
|
600
|
+
next
|
|
601
|
+
end
|
|
602
|
+
end
|
|
603
|
+
|
|
566
604
|
tm.switch_to_task(task, app_name: app_name)
|
|
567
605
|
end
|
|
568
606
|
|
data/lib/hiiro/version.rb
CHANGED