Don't enable CAPS unnecessarily.
[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.3 2004/07/11 06:33:27 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                 ps auwwwxxx > /tmp/ps.txt
62                 if grep -q dfuife_curses /tmp/ps.txt; then
63                         # Frontend is already running.
64                 else
65                         /usr/local/sbin/dfuife_curses -r $RENDEZVOUS \
66                             -t $pfi_dfui_transport \
67                             -b /usr/local/share/dfuife_curses/fred.txt \
68                             2>/dev/ttyv0 </dev/ttyv1 >/dev/ttyv1 &
69                 fi
70                 sleep 1
71                 vidcontrol -s 2
72                 cp /usr/local/sbin/dfuibe_installer /var/run/dfuibe_installer
73                 /var/run/dfuibe_installer -r $RENDEZVOUS -t $pfi_dfui_transport
74                 RESULT=$?
75                 sleep 1
76                 killall dfuife_curses
77                 vidcontrol -s 1
78                 ;;
79         Xnone)
80                 RESULT=0
81                 ;;
82         *)
83                 echo "Unknown installer frontend '$pfi_frontend'."
84                 return
85                 ;;
86         esac
87
88         case "$RESULT" in
89         0)
90                 ;;
91         5)
92                 shutdown -h now
93                 ;;
94         *)
95                 ;;
96         esac
97 }
98
99 ### MAIN ###
100
101 ps auwwwxxx > /tmp/ps.txt
102 if grep -q dfuibe_installer /tmp/ps.txt; then
103         # Installer is already running. Log in normally.
104 else
105         installer_start
106 fi
107
108 rm -f /tmp/ps.txt
109
110 ### END of installer ###