Reactivated the "fresh install" code in the Bootscript, but modified it

a bit:
* Added directory /etc/post_install, which can contain scripts that will
  be executed on the first boot.
* Moved the mimeset invocations to such a script. Use the "-apps"
  option instead of "-all". Since create_app_meta_mime() (and thus
  mimeset) work recursively now, running the commands does actually have
  an effect.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25309 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold 2008-05-04 13:10:42 +00:00
parent 26791a6b96
commit b2c7de8230
4 changed files with 31 additions and 11 deletions

View File

@ -337,9 +337,12 @@ SEARCH on $(networkSettingsFiles)
= [ FDirName $(HAIKU_TOP) data settings network ] ;
AddFilesToHaikuImage common settings network : $(networkSettingsFiles) ;
# fresh install indicator file
SEARCH on <settings>fresh_install = [ FDirName $(HAIKU_TOP) data settings ] ;
AddFilesToHaikuImage home config settings : <settings>fresh_install ;
# post install scripts and fresh install indicator file
local postInstallFiles = fresh_install mime_update.sh ;
postInstallFiles = $(postInstallFiles:G=post-install) ;
SEARCH on $(postInstallFiles)
= [ FDirName $(HAIKU_TOP) data etc post_install ] ;
AddFilesToHaikuImage beos etc post_install : $(postInstallFiles) ;
# boot loader
AddFilesToHaikuImage beos system : zbeos ;

View File

@ -0,0 +1,8 @@
#!/bin/sh
# Make sure all apps have a MIME DB entry.
mimeset -apps -f /boot/beos/apps
mimeset -apps -f /boot/beos/preferences
mimeset -apps -f /boot/beos/system/servers
mimeset -apps -f /boot/apps

View File

@ -138,12 +138,21 @@ if [ "$SAFEMODE" != "yes" ]; then
fi
fi
# Check for fresh install and register all bundled app mimetypes
FRESH_INSTALL_INDICATOR_FILE=$HOME/config/settings/fresh_install
if [ -e $FRESH_INSTALL_INDICATOR_FILE ]; then
# mimeset -all -f /boot/beos/apps
# mimeset -all -f /boot/beos/preferences
# mimeset -all -f /boot/beos/system/servers
# mimeset -all -f /boot/apps
rm $FRESH_INSTALL_INDICATOR_FILE
# Check for fresh install and run post install scripts.
postInstallDir=/boot/beos/etc/post_install
freshInstallIndicator=$postInstallDir/fresh_install
if [ -e $freshInstallIndicator ]; then
# wait a moment for things to calm down a bit
sleep 3
# execute scripts
for f in $postInstallDir/*.sh; do
if [ -f $f ]; then
echo "Running post install script $f ..." > /dev/dprintf
$f
fi
done
sync
rm $freshInstallIndicator
fi