Reduce differences with root_skels in contrib.
[dragonfly.git] / contrib / bsdinstaller-1.1.6 / root_skels / installer / usr / local / bin / installer
blob5b0ba8b3ce4a8bddfb40a3c93b381d194f6ef6ee
1 #!/bin/sh
3 # installer - start installer frontend and backend as per pfi config.
4 # $Id: installer,v 1.18 2005/03/19 05:31:14 cpressey Exp $
5 # $DragonFly: src/contrib/bsdinstaller-1.1.6/root_skels/installer/usr/local/bin/Attic/installer,v 1.1.1.1 2008/03/12 22:15:45 dave Exp $
7 ### SUBS ###
9 background_backend()
11 RENDEZVOUS=$1
12 TRANSPORT=$2
13 cp /usr/local/sbin/dfuibe_installer /var/run/dfuibe_installer
14 /var/run/dfuibe_installer -r $RENDEZVOUS -t $TRANSPORT >/dev/null 2>&1
15 RESULT=$?
16 case "$RESULT" in
20 $pfi_shutdown_command
24 esac
27 installer_start()
29 # Console start sequence:
30 # - Backend (and all other logging) goes to console (ttyv0)
31 # - curses frontend starts on ttyv1.
32 # - Uses vidcontrol -s 2 to switch to ttyv1 once the frontend is up.
34 echo -n "Starting installer. "
36 if [ -r /etc/defaults/pfi.conf ]; then
37 . /etc/defaults/pfi.conf
40 if [ -r /etc/pfi.conf ]; then
41 echo "Reading /etc/pfi.conf ..."
42 . /etc/pfi.conf
43 else
44 echo "/etc/pfi.conf not found, starting interactive install."
47 # We can set up any install variables and such
48 # here by examining pfi_* variables.
50 if [ "X$pfi_run" != "X" ]; then
51 pfi_frontend=none
52 $pfi_run
55 case "X$pfi_dfui_transport" in
56 Xcaps)
57 sysctl kern.caps_enabled=1
58 RENDEZVOUS="installer"
60 Xnpipe)
61 RENDEZVOUS="installer"
63 Xtcp)
64 RENDEZVOUS="9999"
67 echo "Unsupported DFUI transport '$pfi_dfui_transport'."
68 return
70 esac
72 if [ "X$SERIAL" = "XYES" ]; then
73 background_backend $RENDEZVOUS $pfi_dfui_transport &
74 sleep 1
75 ESCDELAY=$pfi_curses_escdelay \
76 /usr/local/sbin/dfuife_curses \
77 -r $RENDEZVOUS \
78 -t $pfi_dfui_transport \
79 -b /usr/local/share/dfuife_curses/fred.txt \
80 2>/dev/null
81 pfi_frontend=none
84 case "X$pfi_frontend" in
85 Xqt)
86 background_backend $RENDEZVOUS $pfi_dfui_transport &
87 sleep 1
88 rcrun forcestart moused
89 X -configure
90 mv /root/xorg.conf.new /etc/X11/xorg.conf
91 echo "exec dfuife_qt" > /root/.xinitrc
92 xinit
94 Xcgi)
95 $pfi_backend -r $RENDEZVOUS -t $pfi_dfui_transport
96 RESULT=$?
98 Xcurses)
99 ps auwwwxxx > /tmp/ps.txt
100 if grep -q dfuife_curses /tmp/ps.txt; then
101 # Frontend is already running.
102 else
103 ESCDELAY=$pfi_curses_escdelay \
104 /usr/local/sbin/dfuife_curses \
105 -r $RENDEZVOUS \
106 -t $pfi_dfui_transport \
107 -b /usr/local/share/dfuife_curses/fred.txt \
108 2>/dev/ttyv0 </dev/ttyv1 >/dev/ttyv1 &
110 rm -f /tmp/ps.txt
111 sleep 1
112 vidcontrol -s 2
113 $pfi_backend -r $RENDEZVOUS -t $pfi_dfui_transport
114 RESULT=$?
115 sleep 1
116 killall dfuife_curses
117 vidcontrol -s 1
119 Xnone)
120 RESULT=0
123 echo "Unknown installer frontend '$pfi_frontend'."
124 return
126 esac
128 case "$RESULT" in
132 $pfi_shutdown_command
136 esac
139 ### MAIN ###
141 if [ "X$1" = "Xserial" ]; then
142 SERIAL=YES
145 TTY=`w | awk '{ print $2 }' | tail -n1`
146 if [ "tty$TTY" = "ttyd0" ]; then
147 SERIAL=YES
150 ps auwwwxxx > /tmp/ps.txt
151 if grep -q dfuibe_installer /tmp/ps.txt; then
152 # Installer is already running. Log in normally.
153 rm -f /tmp/ps.txt
154 else
155 rm -f /tmp/ps.txt
156 installer_start
159 ### END of installer ###