#!/bin/sh
#(c) copyright 2007 Barry Kauler
#2007 Lesser GPL licence v2 (http://www.fsf.org/licensing/licenses/lgpl.html)
#launched from ~/.xinitrc, so X is running.
#note, see also /usr/sbin/savepuppyd, launched from /etc/rc.d/rc.local0.
#v3.91 BK oct,nov 2007, upated for Dingo.
#v3.94 BK 15 dec 2007, updated.
#v4.01 BK 19may2008: don't think loading usb-storage reqd here anymore.
#v4.01 BK 19may2008: note the new pup_eventd also launched from .xinitrc.
#w007 path fix for Xorg.
#w481 warning if modules cannot be loaded.
#100404 fix load applets for fbpanel. 100413 think needs some 'sleep 0.1'
#100504 background color for retrovol.
#100511 for ram-challenged pc, better to display welcome1stboot.png.
#100513 jwm tray now uses freememapplet_tray and blinky_tray. NOTE: future, move these to /root/Startup.
#100517 freememapplet_tray moved to /root/Startup.
#100522 'surfer' is a simple viewer (uses libgtkhtml).
#100608 if yaf-splash symlink to gtkdialog-splash, use '-fontsize large' parameter.
#100821 01micko: fixes for background color in tray apps, also launch first-run.sh.
#100917 have removed -font parameter from yaf-splash (see /usr/share/doc/yaf-splash-new.htm).
#101004 jemimah has disabled tray applet in retrovol, now using obmixer_tray.
#101007 sound alias modprobe info may have moved.
#101009 problem as tray applets only got launched after welcome msg exited.
#101017 Alsa modprobe file now /etc/modprobe.d/alsa.conf.
#101019 welcome1stboot is now a gtkdialog app...
#101112 alsa info in two different places.
#101120, 101121 fix sound test, rewritten /sbin/pup_event_backend_modprobe.
#101210 pup_event_alsa_cnt* are now in /tmp/pup_event_backend.
#110113 test /dev/mixer for sound ready, see /etc/init.d/10alsa.
#20110328 if mouse not working, popup dialog.
#110412 welcome1stboot now written in BaCon, in /usr/sbin.
#110516 only popup dlg for mouse not working, if DISTRO_XORG_AUTO='yes' (in /etc/DISTRO_SPECS)
#110807 take out pngoverlay code, doing it in woof 3builddistro.
#110925 fix, improvements, for flash player download.
#111010 create /tmp/delayedrun_finished_flag to flag when this script exited.
#111019 DISTRO_XORG_AUTO==yes and PUPMODE==5, run 'quickcountry'. mouse-checking moved to 'mousecheck'.
#111026 decided not to run 'mousecheck' from here. instead, a button in 'quicksetup'.
#111110 ping 64.233.169.103 address no longer responding. 01micko: use 8.8.8.8
#111112 delay a bit more before flashplayer popup.
#111113 fix for download url for flash player. 111117 fix.
#120110 added sudo line. see also /etc/sudoers -- set delayedrun does not require password, probably a security hole, need to look at it again later.
#120201 rodin.s: internationalized.
#120227 call external /usr/sbin/check_internet
#120329 shinobar: download tweaks.
#120401 added warning flash player may not work.
#120403 removed adobe flash download. no, have changed to older version.
#120620 removed adobe flash download. want quicksetup/welcome1stboot for any PUPMODE at first startup.
#120708 run 'quickarm' instead of 'quicksetup' on arm boards. see 3builddistro, /usr/sbin/quicksetup.
#120714 revert 120708.
#120718 modify initial sleep.
#120823 rerwin: skip quicksetup if /etc/personal_settings_popup_disabled file created by remasterpup2 (modified by rerwin).
#120823 rerwin: use distro-specific delayedrun if available.
#120830 quicksetup restarts X, welcome1stboot did not run.
#200508 TEXTDOMAIN "pup_" prepended.

[ "`whoami`" != "root" ] && exec sudo -A ${0} ${@} #120110

export TEXTDOMAIN=pup_delayedrun
export OUTPUT_CHARSET=UTF-8
. gettext.sh

#variables created at bootup by 'init' in initramfs...
. /etc/rc.d/PUPSTATE
. /etc/DISTRO_SPECS
[ -x ${0}-${DISTRO_FILE_PREFIX} ] && exec ${0}-${DISTRO_FILE_PREFIX} #120823 rerwin: use distro-specific delayedrun if available.
. /etc/rc.d/BOOTCONSTRAINED #120708

sleep 1 #let the dust settle first. 120718 reduce 2 to 1
#120718 slow cpus need more delay....
DELAYFACTOR=0
CPUMHZ=`grep -m 1 -i '^cpu MHz' /proc/cpuinfo | tr -d ' ' | cut -f 2 -d ':' | cut -f 1 -d '.'` #my laptop: 933.000
if [ $CPUMHZ ];then
 [ $CPUMHZ -gt 100 ] && DELAYFACTOR=`expr 900 \/ $CPUMHZ`
else #120718 raspi: 697.95  my laptop: 4789.47
 BOGOMIPS=`grep -m 1 -i '^bogomips' /proc/cpuinfo | tr -d ' ' | cut -f 2 -d ':' | cut -f 1 -d '.'`
 [ $BOGOMIPS ] && [ $BOGOMIPS -gt 200 ] && DELAYFACTOR=`expr 800 \/ $BOGOMIPS`
fi
[ $DELAYFACTOR -gt 0 ] && sleep $DELAYFACTOR

# cedar hack 120210 (JustGreg) #moved down 120226
[ -x /usr/sbin/zcedar.sh ] && /usr/sbin/zcedar.sh

#offer to popup a getting-started html page...
#120620 change logic so get these when first boot full install...
#the test for /etc/videomode is for when Xvesa has finished choosing a resolution...
if [ "`readlink /usr/bin/X`" = "Xorg" -o -e /etc/videomode ];then #w007
 if [ ! -f /var/local/delayedrun_firstboot_flag ];then
  if [ ! -f /tmp/delayedrun_firstboot_flag ];then #120830 if quicksetup restarts X, reenter here jumps this...
   touch /tmp/delayedrun_firstboot_flag
   if [ "$DISTRO_XORG_AUTO" = "yes" ];then #see /etc/DISTRO_SPECS 111019
    #quick setup window for country and language and X resolution...
    QUICKSETUP="quicksetup"
    [ "`readlink /usr/bin/X | grep 'Xorg'`" = "" ] && QUICKSETUP="quickcountry" #probably Xvesa, offer country settings only.
    [ ! -f /etc/personal_settings_popup_disabled ] && ${QUICKSETUP} #120823 rerwin: skip quicksetup if /etc/personal_settings_popup_disabled file created by remasterpup2 (modified by rerwin).
   fi
  fi
  if [ -c /dev/mixer ];then #110113 test for sound ready, see /etc/init.d/10alsa.
   aplay /usr/share/audio/2barks.au &
   #wavplay /usr/share/audio/2barks.wav &
   RETAPLAY=$?
   PIDAPLAY=$!
  fi
  #desklayout #new gui for icon layout for slacko 121015 #fail
  #welcome1stboot.sh & #110412 now in /usr/sbin #121002 for slacko
  welcome1stboot #L18L 140206
  
  sleep 3 #101009
  #[ $RETAPLAY -eq 0 ] && kill $PIDAPLAY 2> /dev/null
  #[ "`pidof aplay`" != "" ] && killall aplay
  touch /var/local/delayedrun_firstboot_flag
 fi
fi

#v2.16 popup the BootManager if an extra SFS file added (once only)...
if [ ! $PUPMODE -eq 5 ];then
 if [ -d /initrd ];then #test it isn't full hd installation.
  . /etc/rc.d/BOOTCONFIG
  #if EXTRASFSLIST variable not there, then auto-load of SFS files (meaning, user
  # has probably never run the BootManager)...
  if [ "`grep '^EXTRASFSLIST' /etc/rc.d/BOOTCONFIG`" = "" ];then
   #see /initrd/init which writes these to BOOTCONFIG..
   if [ "$LASTUNIONRECORD" != "" ];then
    if [ "$LASTUNIONRECORD" != "$PREVUNIONRECORD" ];then
     bootmanager extrasfs quiet
    fi
   fi
  fi
 fi
fi

#101121 handle multiple sound cards...
if [ $PUPMODE -eq 5 ];then
 if [ -f /tmp/rc_d_rc_services_alsa_ok ];then #see /etc/rc.d/rc.services
  if [ `find /tmp/pup_event_backend -maxdepth 1 -type f -name 'pup_event_alsa_cnt*' | wc -l` -gt 1 ];then
   #run kirk's Multiple Sound Card Wizard...
   Multiple-Sound-Card-Wizard
  fi
 fi
fi

# give xchat unique username based on distro
if [ $PUPMODE -eq 5 ];then
 if [ -f $HOME/.xchat2/xchat.conf ];then
   count=`grep '^irc_nick[0-9]' $HOME/.xchat2/xchat.conf|wc -l`
   x=$RANDOM
   for (( i=1;i <= $count;i++ ))
    do 
	  sed -i "s|irc_nick${i} =.*|irc_nick${i} = ${DISTRO_FILE_PREFIX}${x}${i}|" \
				$HOME/.xchat2/xchat.conf
	done
 fi
fi

#v2.16 popup a warning if booting from usb flash...
if [ "$PMEDIA" = "usbflash" ];then
 /usr/lib/gtkdialog/box_splash -close never -fontsize large -bg yellow -timeout 3 -text "$(gettext 'WARNING! Do not unplug USB Flash drive!')" & #101009
fi

#v2.17 suggested by andrei...
if [ -d /root/Startup ];then
 for a in /root/Startup/*
 do
  if [ -x "$a" ];then $a & #jamesbond
  fi
  sleep 0.2
 done
fi


touch /tmp/delayedrun_finished_flag #111010
###END###
