[arch-dev-public] Best way to force file overwrites in a package?
Thayer Williams
thayer at archlinux.org
Mon Jun 2 18:43:53 EDT 2008
I'm putting together a kmenu icon set to replace the default icons.
Upon installation I want it to backup the existing icons and copy the
new ones. I tried doing this with an install file, but I still get a
"conflicting files" error when I try to install the package. Ideally,
I'd like this to work without forcing the user to pacman -f the
package. Is this possible?
I've included the install file below... is there a cleaner way of
performing this task? Should I even bother with backing up the old
stuff? A post_remove message could instruct the user to reinstall the
'kdelibs' package instead.
pre_install() {
#backup existing kmenu icons
mv /opt/kde/share/icons/crystalsvg/16x16/apps/kmenu.png \
/opt/kde/share/icons/crystalsvg/16x16/apps/kmenu.png.backup
mv /opt/kde/share/icons/crystalsvg/22x22/apps/kmenu.png \
/opt/kde/share/icons/crystalsvg/22x22/apps/kmenu.png.backup
mv /opt/kde/share/icons/crystalsvg/32x32/apps/kmenu.png \
/opt/kde/share/icons/crystalsvg/32x32/apps/kmenu.png.backup
mv /opt/kde/share/icons/crystalsvg/48x48/apps/kmenu.png \
/opt/kde/share/icons/crystalsvg/48x48/apps/kmenu.png.backup
mv /opt/kde/share/icons/crystalsvg/64x64/apps/kmenu.png \
/opt/kde/share/icons/crystalsvg/64x64/apps/kmenu.png.backup
mv /opt/kde/share/icons/crystalsvg/128x128/apps/kmenu.png \
/opt/kde/share/icons/crystalsvg/128x128/apps/kmenu.png.backup
mv /opt/kde/share/icons/crystalsvg/scalable/apps/kmenu.svgz \
/opt/kde/share/icons/crystalsvg/scalable/apps/kmenu.svgz.backup
}
post_install() {
echo "==> Archlinux KDE theme files can be enabled via kcontrol"
}
# restore original kmenu icons
mv /opt/kde/share/icons/crystalsvg/16x16/apps/kmenu.png.backup \
/opt/kde/share/icons/crystalsvg/16x16/apps/kmenu.png
mv /opt/kde/share/icons/crystalsvg/22x22/apps/kmenu.png.backup \
/opt/kde/share/icons/crystalsvg/22x22/apps/kmenu.png
mv /opt/kde/share/icons/crystalsvg/32x32/apps/kmenu.png.backup \
/opt/kde/share/icons/crystalsvg/32x32/apps/kmenu.png
mv /opt/kde/share/icons/crystalsvg/48x48/apps/kmenu.png.backup \
/opt/kde/share/icons/crystalsvg/48x48/apps/kmenu.png
mv /opt/kde/share/icons/crystalsvg/64x64/apps/kmenu.png.backup \
/opt/kde/share/icons/crystalsvg/64x64/apps/kmenu.png
mv /opt/kde/share/icons/crystalsvg/128x128/apps/kmenu.png.backup \
/opt/kde/share/icons/crystalsvg/128x128/apps/kmenu.png
mv /opt/kde/share/icons/crystalsvg/scalable/apps/kmenu.svgz.backup \
/opt/kde/share/icons/crystalsvg/scalable/apps/kmenu.svgz
}
More information about the arch-dev-public
mailing list