hiiro 0.1.28 → 0.1.29
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/bin/h-task +2 -12
- data/lib/hiiro/version.rb +1 -1
- data/plugins/task.rb +16 -23
- 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: 9bb0956fd77df5e3e941a772cedc2fb51376f7be1adb7ce40b217d73a300d058
|
|
4
|
+
data.tar.gz: 9436e79dae25ae352dcadfbea5e3dcaf1e3be6d435fc4ea5823b71e7425fc739
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3b84f6e8bb918e7029af357a84bf4debe20a2467e9be85d77ea5e931e1b8ac64097c45b9d29b88e8db6514b7303798ef051adcb88144ff7e534c6ab0b2f4bbab
|
|
7
|
+
data.tar.gz: d901ce7695933da9452d7a08cd95cdf28b706af8e46c34eb68dbc0d4500ce7a8b4d0a479fe5b58e8201afe55131b6aa6249d682ef166632a819e11a878440b5a
|
data/bin/h-task
CHANGED
|
@@ -349,11 +349,6 @@ class TaskManager
|
|
|
349
349
|
tree = tree_for_task(task_name)
|
|
350
350
|
task_name = task_for_tree(tree)
|
|
351
351
|
|
|
352
|
-
if RESERVED_WORKTREES.key?(tree)
|
|
353
|
-
puts "Cannot stop reserved task '#{task_name}'"
|
|
354
|
-
return false
|
|
355
|
-
end
|
|
356
|
-
|
|
357
352
|
unassign_task_from_tree(tree)
|
|
358
353
|
puts "Stopped task '#{task_name}' (worktree '#{tree}' now available for reuse)"
|
|
359
354
|
true
|
|
@@ -470,12 +465,9 @@ class TaskManager
|
|
|
470
465
|
worktree_info[tree_name] || File.join(Dir.home, 'work', tree_name)
|
|
471
466
|
end
|
|
472
467
|
|
|
473
|
-
# Worktrees with permanent task assignments (worktree => task)
|
|
474
|
-
RESERVED_WORKTREES = { 'carrot' => 'master' }.freeze
|
|
475
|
-
|
|
476
468
|
# Find an available tree (one without an active task)
|
|
477
469
|
def find_available_tree
|
|
478
|
-
trees.find { |tree| task_for_tree(tree).nil?
|
|
470
|
+
trees.find { |tree| task_for_tree(tree).nil? }
|
|
479
471
|
end
|
|
480
472
|
|
|
481
473
|
# Get the task currently assigned to a tree
|
|
@@ -505,7 +497,6 @@ class TaskManager
|
|
|
505
497
|
|
|
506
498
|
# Unassign task from tree
|
|
507
499
|
def unassign_task_from_tree(tree_name)
|
|
508
|
-
return if RESERVED_WORKTREES.key?(tree_name)
|
|
509
500
|
data = assignments.dup
|
|
510
501
|
data.delete(tree_name)
|
|
511
502
|
save_assignments(data)
|
|
@@ -522,8 +513,7 @@ class TaskManager
|
|
|
522
513
|
else
|
|
523
514
|
{}
|
|
524
515
|
end
|
|
525
|
-
|
|
526
|
-
RESERVED_WORKTREES.merge(data)
|
|
516
|
+
data
|
|
527
517
|
end
|
|
528
518
|
|
|
529
519
|
def save_assignments(data)
|
data/lib/hiiro/version.rb
CHANGED
data/plugins/task.rb
CHANGED
|
@@ -143,16 +143,12 @@ module Task
|
|
|
143
143
|
return true
|
|
144
144
|
end
|
|
145
145
|
|
|
146
|
-
# If a specific tree was requested, verify it exists
|
|
146
|
+
# If a specific tree was requested, verify it exists
|
|
147
147
|
if tree
|
|
148
148
|
if !trees.include?(tree)
|
|
149
149
|
puts "ERROR: Worktree '#{tree}' not found"
|
|
150
150
|
return false
|
|
151
151
|
end
|
|
152
|
-
if RESERVED_WORKTREES.key?(tree)
|
|
153
|
-
puts "ERROR: Worktree '#{tree}' is reserved and cannot be used for tasks"
|
|
154
|
-
return false
|
|
155
|
-
end
|
|
156
152
|
end
|
|
157
153
|
|
|
158
154
|
# Find an available worktree to reuse, or create a new one
|
|
@@ -367,11 +363,6 @@ module Task
|
|
|
367
363
|
tree = tree_for_task(task_name)
|
|
368
364
|
task_name = task_for_tree(tree)
|
|
369
365
|
|
|
370
|
-
if RESERVED_WORKTREES.key?(tree)
|
|
371
|
-
puts "Cannot stop reserved task '#{task_name}'"
|
|
372
|
-
return false
|
|
373
|
-
end
|
|
374
|
-
|
|
375
366
|
unassign_task_from_tree(tree)
|
|
376
367
|
puts "Stopped task '#{task_name}' (worktree '#{tree}' now available for reuse)"
|
|
377
368
|
true
|
|
@@ -440,6 +431,10 @@ module Task
|
|
|
440
431
|
end
|
|
441
432
|
|
|
442
433
|
parent_task = current[:task]
|
|
434
|
+
# Handle if we're in a subtask - get the parent
|
|
435
|
+
if parent_task.include?('/')
|
|
436
|
+
parent_task = parent_task.split('/').first
|
|
437
|
+
end
|
|
443
438
|
subtasks = subtasks_for_task(parent_task)
|
|
444
439
|
|
|
445
440
|
if subtasks.empty?
|
|
@@ -472,13 +467,16 @@ module Task
|
|
|
472
467
|
|
|
473
468
|
parent_task = current[:task]
|
|
474
469
|
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
parent_dir = if worktree_info.key?(parent_task)
|
|
478
|
-
"#{parent_task}_subtasks"
|
|
479
|
-
else
|
|
480
|
-
parent_task
|
|
470
|
+
if parent_task.include?('/')
|
|
471
|
+
parent_task = parent_task.split('/').first
|
|
481
472
|
end
|
|
473
|
+
|
|
474
|
+
parent_dir =
|
|
475
|
+
if worktree_info.key?(parent_task)
|
|
476
|
+
"#{parent_task}_subtasks"
|
|
477
|
+
else
|
|
478
|
+
parent_task
|
|
479
|
+
end
|
|
482
480
|
full_subtask_name = "#{parent_dir}/#{subtask_name}"
|
|
483
481
|
|
|
484
482
|
# Check if subtask already exists
|
|
@@ -826,12 +824,9 @@ module Task
|
|
|
826
824
|
worktree_info[tree_name] || File.join(Dir.home, 'work', tree_name)
|
|
827
825
|
end
|
|
828
826
|
|
|
829
|
-
# Worktrees with permanent task assignments (worktree => task)
|
|
830
|
-
RESERVED_WORKTREES = { 'carrot' => 'master' }.freeze
|
|
831
|
-
|
|
832
827
|
# Find an available tree (one without an active task)
|
|
833
828
|
def find_available_tree
|
|
834
|
-
trees.find { |tree| task_for_tree(tree).nil?
|
|
829
|
+
trees.find { |tree| task_for_tree(tree).nil? }
|
|
835
830
|
end
|
|
836
831
|
|
|
837
832
|
# Get the task currently assigned to a tree
|
|
@@ -861,7 +856,6 @@ module Task
|
|
|
861
856
|
|
|
862
857
|
# Unassign task from tree
|
|
863
858
|
def unassign_task_from_tree(tree_name)
|
|
864
|
-
return if RESERVED_WORKTREES.key?(tree_name)
|
|
865
859
|
data = assignments.dup
|
|
866
860
|
data.delete(tree_name)
|
|
867
861
|
save_assignments(data)
|
|
@@ -878,8 +872,7 @@ module Task
|
|
|
878
872
|
else
|
|
879
873
|
{}
|
|
880
874
|
end
|
|
881
|
-
|
|
882
|
-
RESERVED_WORKTREES.merge(data)
|
|
875
|
+
data
|
|
883
876
|
end
|
|
884
877
|
|
|
885
878
|
def save_assignments(data)
|