Synch to modifications in the installer scripts:
[dragonfly.git] / nrelease / installer / usr / local / bin / installer
1 #!/bin/sh
2
3 # installer - start installer frontend and backend as per pfi config.
4 # $Id: installer,v 1.4 2004/07/10 23:30:41 cpressey Exp $
5 # $DragonFly: src/nrelease/installer/usr/local/bin/installer,v 1.2 2004/07/11 01:55:28 cpressey Exp $
6
7 # auto-login on ttyv0.
8 # backend (and all other logging) on ttyv0 (console.)
9 # curses frontend starts on ttyv1.
10 # use vidcontrol -s 2 to switch to ttyv1.
11
12 ### SUBS ###
13
14 installer_start()
15 {
16         echo -n "Starting installer.  "
17
18         if [ -r /etc/defaults/pfi.conf ]; then
19                 . /etc/defaults/pfi.conf
20         fi
21
22         if [ -r /etc/pfi.conf ]; then
23                 echo "Reading /etc/pfi.conf ..."
24                 . /etc/pfi.conf
25         else
26                 echo "/etc/pfi.conf not found, starting interactive install."
27         fi
28
29         # We can set up any install variables and such
30         # here by examining pfi_* variables.
31
32         if [ "X$pfi_run" != "X" ]; then
33                 pfi_frontend=none
34                 $pfi_run
35         fi
36
37         case "X$pfi_dfui_transport" in
38         Xcaps)
39                 sysctl kern.caps_enabled=1
40                 RENDEZVOUS="installer"
41                 ;;
42         Xnpipe)
43                 RENDEZVOUS="installer"
44                 ;;
45         Xtcp)
46                 RENDEZVOUS="9999"
47                 ;;
48         *)
49                 echo "Unsupported DFUI transport '$pfi_dfui_transport'."
50                 return
51                 ;;
52         esac
53
54         case "X$pfi_frontend" in
55         Xcgi)
56                 cp /usr/local/sbin/dfuibe_installer /var/run/dfuibe_installer
57                 /var/run/dfuibe_installer -r test -t $pfi_dfui_transport
58                 RESULT=$?
59                 ;;
60         Xcurses)
61                 sysctl kern.caps_enabled=1
62                 ps auwwwxxx > /tmp/ps.txt
63                 if grep -q dfuife_curses /tmp/ps.txt; then
64                         # Frontend is already running.
65                 else
66                         /usr/local/sbin/dfuife_curses -r $RENDEZVOUS \
67                             -t $pfi_dfui_transport \
68                             -b /usr/local/share/dfuife_curses/fred.txt \
69                             2>/dev/ttyv0 </dev/ttyv1 >/dev/ttyv1 &
70                 fi
71                 sleep 1
72                 vidcontrol -s 2
73                 cp /usr/local/sbin/dfuibe_installer /var/run/dfuibe_installer
74                 /var/run/dfuibe_installer -r $RENDEZVOUS -t $pfi_dfui_transport
75                 RESULT=$?
76                 sleep 1
77                 killall dfuife_curses
78                 vidcontrol -s 1
79                 ;;
80         Xnone)
81                 RESULT=0
82                 ;;
83         *)
84                 echo "Unknown installer frontend '$pfi_frontend'."
85                 return
86                 ;;
87         esac
88
89         case "$RESULT" in
90         0)
91                 ;;
92         5)
93                 shutdown -h now
94                 ;;
95         *)
96                 ;;
97         esac
98 }
99
100 ### MAIN ###
101
102 ps auwwwxxx > /tmp/ps.txt
103 if grep -q dfuibe_installer /tmp/ps.txt; then
104         # Installer is already running. Log in normally.
105 else
106         installer_start
107 fi
108
109 rm -f /tmp/ps.txt
110
111 ### END of installer ###