2015-08-27 18:55:29 +00:00
|
|
|
function omf.remove_package
|
2015-08-29 22:24:51 +00:00
|
|
|
|
|
|
|
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
|
|
|
|
|
2015-08-26 15:20:13 +00:00
|
|
|
for pkg in $argv
|
2015-08-29 18:10:47 +00:00
|
|
|
set -l remove_status 1
|
|
|
|
|
2015-08-27 18:55:29 +00:00
|
|
|
if not omf.util_valid_package $pkg
|
2015-08-26 18:58:35 +00:00
|
|
|
if test $pkg = "omf"
|
|
|
|
echo (omf::err)"You can't remove `omf`"(omf::off) 1^&2
|
2015-08-26 15:20:13 +00:00
|
|
|
else
|
|
|
|
echo (omf::err)"$pkg is not a valid package/theme name"(omf::off) 1^&2
|
|
|
|
end
|
|
|
|
return $OMF_INVALID_ARG
|
|
|
|
end
|
|
|
|
|
2015-08-29 18:10:47 +00:00
|
|
|
for path in {$OMF_PATH,$OMF_CONFIG}/{pkg}/$pkg
|
|
|
|
not test -d $path; and continue
|
|
|
|
|
2015-08-26 15:20:13 +00:00
|
|
|
emit uninstall_$pkg
|
2015-08-29 22:24:51 +00:00
|
|
|
_remove_from_bundle "package" $pkg
|
|
|
|
|
2015-08-29 18:10:47 +00:00
|
|
|
rm -rf $path
|
|
|
|
set remove_status $status
|
|
|
|
end
|
|
|
|
|
|
|
|
for path in {$OMF_PATH,$OMF_CONFIG}/{themes}/$pkg
|
|
|
|
not test -d $path; and continue
|
|
|
|
|
2015-08-26 15:20:13 +00:00
|
|
|
if test $pkg = (cat $OMF_CONFIG/theme)
|
2015-08-26 19:43:01 +00:00
|
|
|
echo "" > $OMF_CONFIG/theme
|
2015-08-26 15:20:13 +00:00
|
|
|
end
|
2015-08-29 18:10:47 +00:00
|
|
|
|
2015-08-29 22:24:51 +00:00
|
|
|
_remove_from_bundle "theme" $pkg
|
|
|
|
|
2015-08-29 18:10:47 +00:00
|
|
|
rm -rf $path
|
|
|
|
set remove_status $status
|
2015-08-26 15:20:13 +00:00
|
|
|
end
|
2015-08-29 18:10:47 +00:00
|
|
|
|
|
|
|
if test $remove_status -eq 0
|
2015-08-26 15:20:13 +00:00
|
|
|
echo (omf::em)"$pkg succesfully removed."(omf::off)
|
2015-08-29 22:24:51 +00:00
|
|
|
refresh
|
2015-08-26 15:20:13 +00:00
|
|
|
else
|
|
|
|
echo (omf::err)"$pkg could not be found"(omf::off) 1^&2
|
|
|
|
end
|
|
|
|
end
|
2015-08-26 18:15:05 +00:00
|
|
|
end
|