Moved per user post install actions to first-login script.

* The same mechanism (and the same PostInstallScript) is used for this.
* If a file first_login exists in ~/config/settings/boot, the first-login
  scripts are launched, and the file removed.
* This fixes adding the deskbar tray icons even when there is no Deskbar
  running yet (for example on first boot when the FirstBootPrompt
  starts), or, IOW bug #12275.
This commit is contained in:
Axel Dörfler 2015-10-19 21:09:55 +02:00
parent d9bb9513c5
commit d2eca26b73
8 changed files with 31 additions and 17 deletions

View File

@ -254,6 +254,10 @@ local userBootScripts = UserBootscript UserSetupEnvironment.sample ;
SEARCH on $(userBootScripts) = [ FDirName $(HAIKU_TOP) data config boot ] ;
AddFilesToHaikuImage home config settings boot : $(userBootScripts) ;
SEARCH on <user-first-login>first_login
= [ FDirName $(HAIKU_TOP) data settings ] ;
AddFilesToHaikuImage home config settings : <user-first-login>first_login ;
local etcDir = [ FDirName $(HAIKU_TOP) data etc ] ;
local etcFiles = inputrc profile ;
etcFiles = $(etcFiles:G=etc) ;

View File

@ -137,14 +137,19 @@ local userLaunchScripts = <data!launch>user ;
SEARCH on $(userLaunchScripts) = [ FDirName $(HAIKU_TOP) data launch ] ;
AddFilesToPackage data user_launch : $(userLaunchScripts) ;
# post install scripts
local postInstallFiles = add_catalog_entry_attributes.sh
default_deskbar_items.sh ;
# post install + first login scripts
local postInstallFiles = add_catalog_entry_attributes.sh ;
postInstallFiles = $(postInstallFiles:G=post-install) ;
SEARCH on $(postInstallFiles)
= [ FDirName $(HAIKU_TOP) data system boot post_install ] ;
AddFilesToPackage boot post-install : $(postInstallFiles) ;
local firstLoginFiles = default_deskbar_items.sh ;
firstLoginFiles = $(firstLoginFiles:G=first-login) ;
SEARCH on $(firstLoginFiles)
= [ FDirName $(HAIKU_TOP) data system boot first_login ] ;
AddFilesToPackage boot first-login : $(firstLoginFiles) ;
# artwork and sounds
local logoArtwork =
$(HAIKU_INCLUDE_TRADEMARKS)"HAIKU logo - white on blue - big.png"

View File

@ -134,12 +134,12 @@ local userLaunchScripts = <data!launch>user ;
SEARCH on $(userLaunchScripts) = [ FDirName $(HAIKU_TOP) data launch ] ;
AddFilesToPackage data user_launch : $(userLaunchScripts) ;
# post install scripts
local postInstallFiles = default_deskbar_items.sh ;
postInstallFiles = $(postInstallFiles:G=post-install) ;
SEARCH on $(postInstallFiles)
= [ FDirName $(HAIKU_TOP) data system boot post_install ] ;
AddFilesToPackage boot post-install : $(postInstallFiles) ;
# first login scripts
local firstLoginFiles = default_deskbar_items.sh ;
firstLoginFiles = $(firstLoginFiles:G=first-login) ;
SEARCH on $(firstLoginFiles)
= [ FDirName $(HAIKU_TOP) data system boot first_login ] ;
AddFilesToPackage boot first_login : $(firstLoginFiles) ;
local fortuneFiles = [ Glob $(HAIKU_TOP)/data/system/data/fortunes
: [a-zA-Z0-9]* ] ;

View File

@ -80,7 +80,7 @@ job x-vnd.Haiku-cddb_lookup {
}
job post-install {
launch /bin/sh /system/boot/PostInstallScript
launch /bin/sh /system/boot/PostInstallScript "post install" /boot/system/settings/fresh_install /boot/system/boot/post-install
if file_exists /boot/system/settings/fresh_install
}

View File

@ -20,6 +20,11 @@ target desktop {
launch /bin/sh ~/config/settings/boot/UserBootscript
}
job first-login {
launch /bin/sh /system/boot/PostInstallScript "first login" ~/config/settings/first_login /boot/system/boot/first-login
if file_exists ~/config/settings/first_login
}
job create-installer-link {
# When run from a read-only medium a.k.a. live desktop
if {

View File

@ -0,0 +1 @@
1

View File

@ -2,17 +2,16 @@
# Check for fresh install and run post install scripts.
freshInstallIndicator=/boot/system/settings/fresh_install
postInstallDir=boot/post-install
if [ -e $freshInstallIndicator ]; then
# wait a moment for things to calm down a bit
sleep 3
title=$1
freshInstallIndicator=$2
postInstallDir=$3
if [ -e $freshInstallIndicator ]; then
# execute scripts
for f in /boot/system/$postInstallDir/*.sh
for f in $postInstallDir/*.sh
do
if [ -f $f ]; then
echo "Running post install script $f ..." > /dev/dprintf
echo "Running $title script $f ..." > /dev/dprintf
$f
fi
done