mirror of
https://github.com/oh-my-fish/oh-my-fish.git
synced 2025-02-01 11:21:01 +08:00
omf.remove_package: also remove from bundle
This commit is contained in:
parent
2535892c87
commit
c6df5feba5
|
@ -1,4 +1,28 @@
|
|||
function omf.remove_package
|
||||
|
||||
function _remove_from_bundle
|
||||
set bundle $OMF_CONFIG/bundle
|
||||
|
||||
if test -f $bundle
|
||||
set type $argv[1]
|
||||
set name $argv[2]
|
||||
set bundle_contents (cat $bundle)
|
||||
|
||||
rm -f $bundle
|
||||
|
||||
for record in $bundle_contents
|
||||
set record_type (echo $record | cut -d' ' -f1)
|
||||
set record_name (echo $record | cut -d' ' -f2-)
|
||||
set record_basename (basename (echo $record_name | sed -e 's/\.git$//'))
|
||||
|
||||
if not test "$type" = "$record_type" -a "$name" = "$record_basename"
|
||||
echo "$record_type $record_name" >> $bundle
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for pkg in $argv
|
||||
set -l remove_status 1
|
||||
|
||||
|
@ -15,6 +39,8 @@ function omf.remove_package
|
|||
not test -d $path; and continue
|
||||
|
||||
emit uninstall_$pkg
|
||||
_remove_from_bundle "package" $pkg
|
||||
|
||||
rm -rf $path
|
||||
set remove_status $status
|
||||
end
|
||||
|
@ -26,16 +52,17 @@ function omf.remove_package
|
|||
echo "" > $OMF_CONFIG/theme
|
||||
end
|
||||
|
||||
_remove_from_bundle "theme" $pkg
|
||||
|
||||
rm -rf $path
|
||||
set remove_status $status
|
||||
end
|
||||
|
||||
if test $remove_status -eq 0
|
||||
echo (omf::em)"$pkg succesfully removed."(omf::off)
|
||||
refresh
|
||||
else
|
||||
echo (omf::err)"$pkg could not be found"(omf::off) 1^&2
|
||||
end
|
||||
end
|
||||
|
||||
refresh
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue
Block a user