#!/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.
#130709 precise pup now has two web browsers. 130711. 130719. 130723. 130725.
#140207 check network connection. see also: check_internet, welcome1stboot.bac, network_tray.c, quicksetup.
#140212 fix calling multiple sound card wizard.
#140216 popup warning not to unplug removable drive.
#150212 won't bother to create a ref. snapshot at all.
#150214 popup msg when booted from live-cd or frugal.
#150413 modify warning msg.
#150422 language selector for quicksetup. refer: http://bkhome.org/news/?viewDetailed=00192
#150423 revert 150422
#150425 want to run welcome1stboot with locale chosen in quicksetup. 150429 fix.
#150724 msg for special developer build of quirky.
#150816 add LiveCode to welcome msg.
#151106 hide error msg when PDEV1=zram0
#151109 improve livecd/frugal warning msg.
#160419 improve warning message, iso boot can now be optical or usb-flash media.
#170225 easy linux modifications.
#170528 moved "woof woof" bark to separate process, /usr/sbin/woofwoof
#170801 /usr/share/doc/easy/welcome.htm replaces welcome1stboot.
#170806 have translations /usr/share/doc/easy/${xNEWLANG}/welcome.htm

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

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

. /etc/rc.d/PUPSTATE #variables created at bootup by 'init' in initramfs.
. /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

KERNVER="`uname -r`" #w481

sleep 2 #1 #let the dust settle first. 120718 reduce 2 to 1. 121105 try 2, see also /sbin/pup_event_frontend_d.
#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

#first-time help/setup windows...
#the test for /etc/videomode is for when Xvesa has finished choosing a resolution...
preLANG="" #150429
if [ "`readlink /usr/bin/X`" = "Xorg" -o -e /etc/videomode ];then #w007
 if [ -f /.delayedrun_version_upgrade ];then #170225 refer init script in initramfs.
  rm -f /.delayedrun_version_upgrade
  quicksetup
 else
  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
 
     #150425 want to run welcome1stboot with locale chosen in quicksetup... 150429 fix.
     NEWLANG="`grep '^LANG=' /etc/profile | tr -d "'" | tr -d '"' | cut -f 2 -d '='`"
     xNEWLANG=${NEWLANG:0:2} #ex: de
     xLANG=${LANG:0:2}
     if [ "$xNEWLANG" != "$xLANG" -a "$xNEWLANG" != "en" ];then
      [ -f /usr/share/locale/${xNEWLANG}/LC_MESSAGES/welcome1stboot.mo ] && preLANG="$xNEWLANG"
     fi
 
    fi
   fi
   
   #101121 handle multiple sound cards...
   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
   
   #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
   /usr/sbin/woofwoof & #170528
   
   #140207 before bring up the welcome window, test if network connection...
   #ex subdirs: eth0 lo ppp0 wlan0
   #file 'dormant' returns "0" if interface up. screen out "lo" interface...
   ACTIVEIFS="$(grep -H -x '0' /sys/class/net/[^l]*/dormant 2>/dev/null | cut -f 5 -d '/')" #ex: /sys/class/net/ppp0/dormant:0
   if [ "$ACTIVEIFS" ];then
    echo -n "$ACTIVEIFS" > /tmp/delayedrun-active-interfaces
    ping -4 -c 1 www.google.com
    [ $? -eq 0 ] && touch /tmp/delayedrun-internet-working
   fi
   
   #170812 have replaced welcome1stboot...
   defaultlocalbrowser /usr/share/doc/easy/welcome.htm &
   
   sleep 3 #101009
   #[ $RETAPLAY -eq 0 ] && kill $PIDAPLAY 2> /dev/null
   #[ "`pidof aplay`" != "" ] && killall aplay
   touch /var/local/delayedrun_firstboot_flag
  fi
 fi
fi

#170225
if [ "`cat /sys/block/${WKG_DRV}/removable 2>/dev/null`" = "1" ];then
 yaf-splash -close never -fontsize large -bg yellow -timeout 3 -text "$(gettext 'WARNING! Do not unplug drive') ${WKG_DRV}" &
fi

if [ -d /root/Startup ];then
 for a in /root/Startup/*
 do
  [ -x "$a" ] && $a &
  sleep 0.2
 done
fi


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