#!/bin/sh -
# Copyright 2001 2002 Edson Brandi <ebrandi.home@uol.com.br>
# All Rights Reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY EDSON BRANDI ``AS IS'' AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT EDSON BRANDI BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
# OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
# DAMAGE.
# The ncurses dialog program path...
DIALOG=${DIALOG=/usr/bin/dialog}
# function to define the language
idioma() {
tempfile=`/usr/bin/mktemp -t checklist`
dialog --menu "FreeBSD LiveCD - Select your Language:" 12 60 4 \
Br "Portuguese / Portugues" \
En "English / Ingles" \
Q "Quit / Sair" \
2> $tempfile
opcao_idioma=`cat $tempfile`
# Loop that loads the appropriate language file; if Br is set it loads
# Br portuguese statements to dialogs and other infos; the same to En or any
# other future language.
case ${opcao_idioma} in
Br)
if [ -f ./lang/vnodes_Br ] ; then
. ./lang/vnodes_Br
else
echo "Idioma selecionado nao disponivel"
exit 1
fi
;;
En)
if [ -f ./lang/vnodes_En ] ; then
. ./lang/vnodes_En
else
echo "Sorry, no such Language file"
exit 1
fi
;;
*)
exit 1
;;
esac
}
mount_point() {
$DIALOG --title "FreeBSD LiveCD" --clear --inputbox "$v_mount_1" 8 70 "" 2> /tmp/input.tmp.$$
retval=$?
mount_point=`cat /tmp/input.tmp.$$`
rm /tmp/input.tmp.$$
# Trap to allow the user to abort the process
case $retval in
0)
if [ -f ${mount_point}/freebsd ]; then
menu
elif then
mkdir ${mount_point}/freebsd
menu
fi
;;
1)
echo "Cancel pressed.";;
255)
echo "ESC pressed.";;
esac
}
# Main menu
menu() {
tempfile=`/usr/bin/mktemp -t checklist`
# Lets define the main menu
log "menu()"
dialog --menu "FreeBSD LiveCD - $v_menu_1" 18 70 11 \
E "$v_menu_e" \
H "$v_menu_h" \
L "$v_menu_l" \
R "$v_menu_r" \
S "$v_menu_s" \
T "$v_menu_t" \
V "$v_menu_v" \
X "$v_menu_x" \
Q "$v_menu_q" \
2> $tempfile
opcao=`cat $tempfile`
case ${opcao} in
E)
etc
;;
H)
home
;;
L)
local
;;
R)
root
;;
S)
swap
;;
T)
tmp
;;
V)
var
;;
X)
x11r6
;;
Q)
rm $tempfile
exit 0
;;
*)
exit 0
;;
esac
}
#The etc [E] option
etc() {
$DIALOG --title "FreeBSD LiveCD" --clear --inputbox "$v_etc_1" 8 70 "" 2> /tmp/input.tmp.$$
retval=$?
etc=`cat /tmp/input.tmp.$$`
t_etc=`expr $etc \* 2 \* 1024`
rm /tmp/input.tmp.$$
# Trap to allow users to abort the process
case $retval in
0)
dd if=/dev/zero of=${mount_point}/freebsd/etc.flp bs=512 count=$t_etc
cd /dev
./MAKEDEV vn4
vnconfig -s labels -c vn4 ${mount_point}/freebsd/etc.flp
disklabel -r -w vn4c auto
newfs /dev/vn4c
mount /dev/vn4c /mnt/tmp
cd /mnt/tmp
cp -Rp /etc/* .
touch /mnt/tmp/XYZ123_
cd /
sleep 5
umount /mnt/tmp
vnconfig -u vn4
#
dialog --title "FreeBSD LiveCD" --msgbox "$v_etc_2" 5 60
#
menu
;;
1)
echo "Cancel pressed.";;
255)
echo "ESC pressed.";;
esac
}
# The home option
home() {
$DIALOG --title "FreeBSD LiveCD" --clear --inputbox "$v_home_1" 8 70 "" 2> /tmp/input.tmp.$$
retval=$?
home=`cat /tmp/input.tmp.$$`
t_home=`expr $home \* 2 \* 1024`
rm /tmp/input.tmp.$$
# Trap to abort the process
case $retval in
0)
dd if=/dev/zero of=${mount_point}/freebsd/home.flp bs=512 count=$t_home
cd /dev
./MAKEDEV vn5
vnconfig -s labels -c vn5 ${mount_point}/freebsd/home.flp
disklabel -r -w vn5c auto
newfs /dev/vn5c
mount /dev/vn5c /mnt/tmp
touch /mnt/tmp/XYZ123_
umount /mnt/tmp
vnconfig -u vn5
#
dialog --title "FreeBSD LiveCD" --msgbox "$v_home_2" 5 60
#
menu
;;
1)
echo "Cancel pressed.";;
255)
echo "ESC pressed.";;
esac
}
# The local option
local() {
$DIALOG --title "FreeBSD LiveCD" --clear --inputbox "$v_local_1" 8 70 "" 2> /tmp/input.tmp.$$
retval=$?
local=`cat /tmp/input.tmp.$$`
t_local=`expr $local \* 2 \* 1024`
rm /tmp/input.tmp.$$
# Trap to allow users to abort the process.
case $retval in
0)
dd if=/dev/zero of=${mount_point}/freebsd/local.flp bs=512 count=$t_local
cd /dev
./MAKEDEV vn7
vnconfig -s labels -c vn7 ${mount_point}/freebsd/local.flp
disklabel -r -w vn7c auto
newfs /dev/vn7c
mount /dev/vn7c /mnt/tmp
cd /mnt/tmp
# cp -Rp /usr/local/* .
touch /mnt/tmp/XYZ123_
cd /
sleep 5
umount /mnt/tmp
vnconfig -u vn7
#
dialog --title "FreeBSD LiveCD" --msgbox "$v_local_2" 5 60
#
menu
;;
1)
echo "Cancel pressed.";;
255)
echo "ESC pressed.";;
esac
}
# Root option
root() {
$DIALOG --title "FreeBSD LiveCD" --clear --inputbox "v_root_1" 8 70 "" 2> /tmp/input.tmp.$$
retval=$?
root=`cat /tmp/input.tmp.$$`
t_root=`expr $root \* 2 \* 1024`
rm /tmp/input.tmp.$$
# Trap to allow users to abort the process.
case $retval in
0)
dd if=/dev/zero of=${mount_point}/freebsd/root.flp bs=512 count=$t_root
cd /dev
./MAKEDEV vn6
vnconfig -s labels -c vn6 ${mount_point}/freebsd/root.flp
disklabel -r -w vn6c auto
newfs /dev/vn6c
mount /dev/vn6c /mnt/tmp
cd /mnt/tmp
cp -Rp /root/* .
touch /mnt/tmp/XYZ123_
cd /
sleep 5
umount /mnt/tmp
vnconfig -u vn6
#
dialog --title "FreeBSD LiveCD" --msgbox "$v_root_2" 5 60
#
menu
;;
1)
echo "Cancel pressed.";;
255)
echo "ESC pressed.";;
esac
}
# swap option
swap() {
$DIALOG --title "FreeBSD LiveCD" --clear --inputbox "$v_swap_1" 8 70 "" 2> /tmp/input.tmp.$$
retval=$?
swap=`cat /tmp/input.tmp.$$`
t_swap=`expr $swap \* 2 \* 1024`
rm /tmp/input.tmp.$$
# Trap to allow users to abort the process.
case $retval in
0)
dd if=/dev/zero of=${mount_point}/freebsd/swap.flp bs=512 count=$t_swap
echo swapfile=\"${mount_point}/freebsd/swap.flp\" >> /etc/rc.conf
#
dialog --title "FreeBSD LiveCD" --msgbox "$v_swap_2" 5 60
#
menu
;;
1)
echo "Cancel pressed.";;
255)
echo "ESC pressed.";;
esac
}
# tmp option
tmp() {
$DIALOG --title "FreeBSD LiveCD" --clear --inputbox "$v_tmp_1" 8 70 "" 2> /tmp/input.tmp.$$
retval=$?
tmp=`cat /tmp/input.tmp.$$`
t_tmp=`expr $tmp \* 2 \* 1024`
rm /tmp/input.tmp.$$
# Trap to allow users to abort the process.
case $retval in
0)
dd if=/dev/zero of=${mount_point}/freebsd/tmp.flp bs=512 count=$t_tmp
cd /dev
./MAKEDEV vn1
vnconfig -s labels -c vn1 ${mount_point}/freebsd/tmp.flp
disklabel -r -w vn1c auto
newfs /dev/vn1c
mount /dev/vn1c /mnt/tmp
touch /mnt/tmp/XYZ123_
cd /
umount /mnt/tmp
vnconfig -u vn1
#
dialog --title "FreeBSD LiveCD" --msgbox "$v_tmp_2" 5 60
#
menu
;;
1)
echo "Cancel pressed.";;
255)
echo "ESC pressed.";;
esac
}
# the var option
var() {
$DIALOG --title "FreeBSD LiveCD" --clear --inputbox "$v_var_1" 8 70 "" 2> /tmp/input.tmp.$$
retval=$?
var=`cat /tmp/input.tmp.$$`
t_var=`expr $var \* 2 \* 1024`
rm /tmp/input.tmp.$$
# Trap to allow users to abort the process.
case $retval in
0)
dd if=/dev/zero of=${mount_point}/freebsd/var.flp bs=512 count=$t_var
cd /dev
./MAKEDEV vn3
vnconfig -s labels -c vn3 ${mount_point}/freebsd/var.flp
disklabel -r -w vn3c auto
newfs /dev/vn3c
mount /dev/vn3c /mnt/tmp
killall syslogd
cd /mnt/tmp
cp -Rp /var/* .
touch /mnt/tmp/XYZ123_
cd /
sleep 5
umount /mnt/tmp
vnconfig -u vn3
#
dialog --title "FreeBSD LiveCD" --msgbox "$v_var_2" 5 60
#
menu
;;
1)
echo "Cancel pressed.";;
255)
echo "ESC pressed.";;
esac
}
# x11r6 option
x11r6() {
$DIALOG --title "FreeBSD LiveCD" --clear --inputbox "$v_x11r6_1" 8 70 "" 2> /tmp/input.tmp.$$
retval=$?
x11r6=`cat /tmp/input.tmp.$$`
t_x11r6=`expr $x11r6 \* 2 \* 1024`
rm /tmp/input.tmp.$$
# Trap to allow users to abort the process.
case $retval in
0)
dd if=/dev/zero of=${mount_point}/freebsd/x11r6.flp bs=512 count=$t_x11r6
cd /dev
./MAKEDEV vn8
vnconfig -s labels -c vn8 ${mount_point}/freebsd/x11r6.flp
disklabel -r -w vn8c auto
newfs /dev/vn8c
mount /dev/vn8c /mnt/tmp
cd /mnt/tmp
cp -Rp /usr/X11R6/* .
touch /mnt/tmp/XYZ123_
cd /
sleep 5
umount /mnt/tmp
vnconfig -u vn8
#
dialog --title "FreeBSD LiveCD" --msgbox "v_x11r6_2" 5 60
#
menu
;;
1)
echo "Cancel pressed.";;
255)
echo "ESC pressed.";;
esac
}
# Lets call the language (idioma) and the mount_point functions.
idioma
mount_point
syntax highlighted by Code2HTML, v. 0.9.1