xref: /freebsd/usr.sbin/bsdinstall/scripts/docsinstall (revision bc4a673f89b9c5d4eb0be86cf4206a6b09fd2ca3)
1bfc3bab8SNathan Whitehorn#!/bin/sh
2bfc3bab8SNathan Whitehorn#-
3bfc3bab8SNathan Whitehorn# Copyright (c) 2011 Marc Fonvieille
4*bc4a673fSDevin Teske# Copyright (c) 2013 Devin Teske
5bfc3bab8SNathan Whitehorn# All rights reserved.
6bfc3bab8SNathan Whitehorn#
7bfc3bab8SNathan Whitehorn# Redistribution and use in source and binary forms, with or without
8bfc3bab8SNathan Whitehorn# modification, are permitted provided that the following conditions
9bfc3bab8SNathan Whitehorn# are met:
10bfc3bab8SNathan Whitehorn# 1. Redistributions of source code must retain the above copyright
11bfc3bab8SNathan Whitehorn#    notice, this list of conditions and the following disclaimer.
12bfc3bab8SNathan Whitehorn# 2. Redistributions in binary form must reproduce the above copyright
13bfc3bab8SNathan Whitehorn#    notice, this list of conditions and the following disclaimer in the
14bfc3bab8SNathan Whitehorn#    documentation and/or other materials provided with the distribution.
15bfc3bab8SNathan Whitehorn#
16bfc3bab8SNathan Whitehorn# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17bfc3bab8SNathan Whitehorn# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18bfc3bab8SNathan Whitehorn# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19bfc3bab8SNathan Whitehorn# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20bfc3bab8SNathan Whitehorn# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21bfc3bab8SNathan Whitehorn# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22bfc3bab8SNathan Whitehorn# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23bfc3bab8SNathan Whitehorn# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24bfc3bab8SNathan Whitehorn# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25bfc3bab8SNathan Whitehorn# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26bfc3bab8SNathan Whitehorn# SUCH DAMAGE.
27bfc3bab8SNathan Whitehorn#
28bfc3bab8SNathan Whitehorn# $FreeBSD$
29*bc4a673fSDevin Teske#
30*bc4a673fSDevin Teske############################################################ INCLUDES
31bfc3bab8SNathan Whitehorn
32*bc4a673fSDevin TeskeBSDCFG_SHARE="/usr/share/bsdconfig"
33*bc4a673fSDevin Teske. $BSDCFG_SHARE/common.subr || exit 1
34*bc4a673fSDevin Teskef_dprintf "%s: loading includes..." "$0"
35*bc4a673fSDevin Teskef_include $BSDCFG_SHARE/dialog.subr
36*bc4a673fSDevin Teskef_include $BSDCFG_SHARE/mustberoot.subr
37*bc4a673fSDevin Teskef_include $BSDCFG_SHARE/packages/packages.subr
38bfc3bab8SNathan Whitehorn
39*bc4a673fSDevin Teske############################################################ CONFIGURATION
40bfc3bab8SNathan Whitehorn
41*bc4a673fSDevin Teske#
42*bc4a673fSDevin Teske# List of languages to display (descriptions pulled from $msg_{lang}doc_desc)
43*bc4a673fSDevin Teske#
44*bc4a673fSDevin Teske: ${DOCSINSTALL_LANGS:=\
45*bc4a673fSDevin Teske	bn da de el en es fr hu it ja mn nl pl pt ru sr tr zh_cn zh_tw \
4605b56666SNathan Whitehorn}
4705b56666SNathan Whitehorn
48*bc4a673fSDevin Teske############################################################ GLOBALS
4905b56666SNathan Whitehorn
50*bc4a673fSDevin Teske#
51*bc4a673fSDevin Teske# Strings that should be moved to an i18n file and loaded with f_include_lang()
52*bc4a673fSDevin Teske#
53*bc4a673fSDevin Teskehline_arrows_space_tab_enter="Use arrows, SPACE, TAB or ENTER"
54*bc4a673fSDevin Teskemsg_bndoc_desc="Bengali Documentation"
55*bc4a673fSDevin Teskemsg_cancel="Cancel"
56*bc4a673fSDevin Teskemsg_dadoc_desc="Danish Documentation"
57*bc4a673fSDevin Teskemsg_dedoc_desc="German Documentation"
58*bc4a673fSDevin Teskemsg_docsinstall_menu_text="This menu allows you to install the whole documentation set from\nthe FreeBSD Documentation Project: Handbook, FAQ, and articles.\n\nPlease select the language versions you wish to install. At\nminimum, you should install the English version, the original\nversion of the documentation."
59*bc4a673fSDevin Teskemsg_eldoc_desc="Greek Documentation"
60*bc4a673fSDevin Teskemsg_endoc_desc="English Documentation (recommended)"
61*bc4a673fSDevin Teskemsg_esdoc_desc="Spanish Documentation"
62*bc4a673fSDevin Teskemsg_frdoc_desc="French Documentation"
63*bc4a673fSDevin Teskemsg_freebsd_documentation_installation="FreeBSD Documentation Installation"
64*bc4a673fSDevin Teskemsg_freebsd_installer="FreeBSD Installer"
65*bc4a673fSDevin Teskemsg_hudoc_desc="Hungarian Documentation"
66*bc4a673fSDevin Teskemsg_itdoc_desc="Italian Documentation"
67*bc4a673fSDevin Teskemsg_jadoc_desc="Japanese Documentation"
68*bc4a673fSDevin Teskemsg_mndoc_desc="Mongolian Documentation"
69*bc4a673fSDevin Teskemsg_nldoc_desc="Dutch Documentation"
70*bc4a673fSDevin Teskemsg_ok="OK"
71*bc4a673fSDevin Teskemsg_pldoc_desc="Polish Documentation"
72*bc4a673fSDevin Teskemsg_ptdoc_desc="Portuguese Documentation"
73*bc4a673fSDevin Teskemsg_rudoc_desc="Russian Documentation"
74*bc4a673fSDevin Teskemsg_srdoc_desc="Serbian Documentation"
75*bc4a673fSDevin Teskemsg_trdoc_desc="Turkish Documentation"
76*bc4a673fSDevin Teskemsg_zh_cndoc_desc="Simplified Chinese Documentation"
77*bc4a673fSDevin Teskemsg_zh_twdoc_desc="Traditional Chinese Documentation"
78bfc3bab8SNathan Whitehorn
79*bc4a673fSDevin Teske############################################################ FUNCTIONS
804ae21ddcSGlen Barber
81*bc4a673fSDevin Teske# dialog_menu_main
82*bc4a673fSDevin Teske#
83*bc4a673fSDevin Teske# Display the dialog(1)-based application main menu.
84*bc4a673fSDevin Teske#
85*bc4a673fSDevin Teskedialog_menu_main()
86*bc4a673fSDevin Teske{
87*bc4a673fSDevin Teske	local title="$DIALOG_TITLE"
88*bc4a673fSDevin Teske	local btitle="$DIALOG_BACKTITLE"
89*bc4a673fSDevin Teske	local prompt="$msg_docsinstall_menu_text"
90*bc4a673fSDevin Teske	local check_list= # Calculated below
91*bc4a673fSDevin Teske	local hline="$hline_arrows_space_tab_enter"
924ae21ddcSGlen Barber
93*bc4a673fSDevin Teske	local lang desc upper status
94*bc4a673fSDevin Teske	for lang in $DOCSINSTALL_LANGS; do
95*bc4a673fSDevin Teske		# Fetch the i18n description to display
96*bc4a673fSDevin Teske		f_getvar msg_${lang}doc_desc desc
97*bc4a673fSDevin Teske		f_shell_escape "$desc" desc
98*bc4a673fSDevin Teske
99*bc4a673fSDevin Teske		# Get default status for each language
100*bc4a673fSDevin Teske		upper=$( echo "$lang" | awk '{print toupper($0)}' )
101*bc4a673fSDevin Teske		case "$lang" in
102*bc4a673fSDevin Teske		en) f_getvar DIST_DOC_$upper:-on status ;;
103*bc4a673fSDevin Teske		 *) f_getvar DIST_DOC_$upper:-off status
104*bc4a673fSDevin Teske		esac
105*bc4a673fSDevin Teske
106*bc4a673fSDevin Teske		check_list="$check_list
107*bc4a673fSDevin Teske			'$lang' '$desc' '$status'
108*bc4a673fSDevin Teske		" # END-QUOTE
109bfc3bab8SNathan Whitehorn	done
110*bc4a673fSDevin Teske
111*bc4a673fSDevin Teske	local height width rows
112*bc4a673fSDevin Teske	eval f_dialog_checklist_size height width rows \
113*bc4a673fSDevin Teske	                             \"\$title\"  \
114*bc4a673fSDevin Teske	                             \"\$btitle\" \
115*bc4a673fSDevin Teske	                             \"\$prompt\" \
116*bc4a673fSDevin Teske	                             \"\$hline\"  \
117*bc4a673fSDevin Teske	                             $check_list
118*bc4a673fSDevin Teske	local selected
119*bc4a673fSDevin Teske	selected=$( eval $DIALOG \
120*bc4a673fSDevin Teske		--title \"\$title\"             \
121*bc4a673fSDevin Teske		--backtitle \"\$btitle\"        \
122*bc4a673fSDevin Teske		--hline \"\$hline\"             \
123*bc4a673fSDevin Teske		--ok-label \"\$msg_ok\"         \
124*bc4a673fSDevin Teske		--cancel-label \"\$msg_cancel\" \
125*bc4a673fSDevin Teske		--checklist \"\$prompt\"        \
126*bc4a673fSDevin Teske		$height $width $rows            \
127*bc4a673fSDevin Teske		$check_list                     \
128*bc4a673fSDevin Teske		2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
129*bc4a673fSDevin Teske	)
130*bc4a673fSDevin Teske	local retval=$?
131*bc4a673fSDevin Teske	f_dialog_menutag_store -s "$selected"
132*bc4a673fSDevin Teske	return $retval
133*bc4a673fSDevin Teske}
134*bc4a673fSDevin Teske
135*bc4a673fSDevin Teske############################################################ MAIN
136*bc4a673fSDevin Teske
137*bc4a673fSDevin Teske#
138*bc4a673fSDevin Teske# Initialize
139*bc4a673fSDevin Teske#
140*bc4a673fSDevin Teskef_dialog_title "$msg_freebsd_documentation_installation"
141*bc4a673fSDevin Teskef_dialog_backtitle "$msg_freebsd_installer"
142*bc4a673fSDevin Teskef_mustberoot_init
143*bc4a673fSDevin Teske
144*bc4a673fSDevin Teske#
145*bc4a673fSDevin Teske# Launch application main menu
146*bc4a673fSDevin Teske#
147*bc4a673fSDevin Teskedialog_menu_main || f_die
148*bc4a673fSDevin Teskef_dialog_menutag_fetch selected
149*bc4a673fSDevin Teske
150*bc4a673fSDevin Teske# Let pkg_add be able to use name servers
151*bc4a673fSDevin Teskef_quietly cp -f $BSDINSTALL_TMPETC/resolv.conf $BSDINSTALL_CHROOT/etc/
152*bc4a673fSDevin Teske
153*bc4a673fSDevin Teske#
154*bc4a673fSDevin Teske# Install each of the selected packages
155*bc4a673fSDevin Teske#
156*bc4a673fSDevin Teskefor lang in $selected; do
157*bc4a673fSDevin Teske	f_package_add $lang-freebsd-doc || return $FAILURE
158*bc4a673fSDevin Teskedone
159*bc4a673fSDevin Teske
160*bc4a673fSDevin Teske################################################################################
161*bc4a673fSDevin Teske# END
162*bc4a673fSDevin Teske################################################################################
163