-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathremove.fish
More file actions
38 lines (29 loc) · 779 Bytes
/
remove.fish
File metadata and controls
38 lines (29 loc) · 779 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function __confirm-remove-git-objects --argument dir
set display_dir (echo $dir | unexpand-home-tilde)
if not confirm "Remove .git directory $display_dir?"
error 'remove: cancelling.'
return 1
end
rm -rf $dir/objects
end
function remove
set original_args $argv
argparse r f -- $argv
if not set -q _flag_r || set -q _flag_f
rm $original_args
return
end
for f in $argv
if not file-exists $f
echo "remove: $f: No such file or directory"
return 1
end
set gitdirs (find $f -name .git)
for gitdir in $gitdirs
if not __confirm-remove-git-objects $gitdir
return 1
end
end
end
rm $original_args
end