summaryrefslogtreecommitdiffstats
path: root/usr.sbin/pc-sysinstall
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2010-08-19 05:59:27 +0000
committerimp <imp@FreeBSD.org>2010-08-19 05:59:27 +0000
commit23d9b9fddd80cb970290ccdde4452d75102c2ce0 (patch)
treeafdb16cb0de36138fec883c729244aaf2f0e7273 /usr.sbin/pc-sysinstall
parent48183e9b238a8ed57106391ce5fe952483664d5e (diff)
downloadFreeBSD-src-23d9b9fddd80cb970290ccdde4452d75102c2ce0.zip
FreeBSD-src-23d9b9fddd80cb970290ccdde4452d75102c2ce0.tar.gz
Various updates to support new pc-sysinstall directive
"installPackages" that will install packages and all package dependencies. PR: 148606 Submitted by: John Hixon
Diffstat (limited to 'usr.sbin/pc-sysinstall')
-rw-r--r--usr.sbin/pc-sysinstall/backend-query/Makefile4
-rwxr-xr-xusr.sbin/pc-sysinstall/backend-query/get-packages.sh10
-rwxr-xr-xusr.sbin/pc-sysinstall/backend-query/set-mirror.sh40
-rw-r--r--usr.sbin/pc-sysinstall/backend/Makefile2
-rwxr-xr-xusr.sbin/pc-sysinstall/backend/functions-ftp.sh24
-rwxr-xr-xusr.sbin/pc-sysinstall/backend/functions-installpackages.sh118
-rwxr-xr-xusr.sbin/pc-sysinstall/backend/functions-packages.sh158
-rwxr-xr-xusr.sbin/pc-sysinstall/backend/functions-runcommands.sh8
-rwxr-xr-xusr.sbin/pc-sysinstall/backend/parseconfig.sh9
-rw-r--r--usr.sbin/pc-sysinstall/conf/pc-sysinstall.conf4
-rw-r--r--usr.sbin/pc-sysinstall/doc/help-index7
-rwxr-xr-xusr.sbin/pc-sysinstall/pc-sysinstall/pc-sysinstall.sh9
12 files changed, 358 insertions, 35 deletions
diff --git a/usr.sbin/pc-sysinstall/backend-query/Makefile b/usr.sbin/pc-sysinstall/backend-query/Makefile
index c042ac3..c43b141 100644
--- a/usr.sbin/pc-sysinstall/backend-query/Makefile
+++ b/usr.sbin/pc-sysinstall/backend-query/Makefile
@@ -3,8 +3,8 @@
FILES= detect-laptop.sh detect-nics.sh detect-emulation.sh disk-info.sh \
disk-list.sh disk-part.sh enable-net.sh get-packages.sh list-config.sh \
list-components.sh list-mirrors.sh list-packages.sh list-rsync-backups.sh \
- list-tzones.sh query-langs.sh send-logs.sh setup-ssh-keys.sh sys-mem.sh \
- test-live.sh test-netup.sh update-part-list.sh xkeyboard-layouts.sh \
+ list-tzones.sh query-langs.sh send-logs.sh set-mirror.sh setup-ssh-keys.sh \
+ sys-mem.sh test-live.sh test-netup.sh update-part-list.sh xkeyboard-layouts.sh \
xkeyboard-models.sh xkeyboard-variants.sh
FILESMODE= ${BINMODE}
FILESDIR=${SHAREDIR}/pc-sysinstall/backend-query
diff --git a/usr.sbin/pc-sysinstall/backend-query/get-packages.sh b/usr.sbin/pc-sysinstall/backend-query/get-packages.sh
index 2c8eab2..ee6fb7b 100755
--- a/usr.sbin/pc-sysinstall/backend-query/get-packages.sh
+++ b/usr.sbin/pc-sysinstall/backend-query/get-packages.sh
@@ -31,24 +31,16 @@
. ${PROGDIR}/backend/functions.sh
. ${PROGDIR}/backend/functions-packages.sh
-DEFAULT_FTP_SERVER="ftp.freebsd.org"
-FTP_SERVER="${1}"
ID=`id -u`
-
if [ "${ID}" -ne "0" ]
then
echo "Error: must be root!"
exit 1
fi
-if [ -z "${FTP_SERVER}" ]
-then
- FTP_SERVER="${DEFAULT_FTP_SERVER}"
-fi
-
if [ ! -f "${PKGDIR}/INDEX" ]
then
- get_package_index "${FTP_SERVER}"
+ get_package_index
fi
if [ -f "${PKGDIR}/INDEX" ]
diff --git a/usr.sbin/pc-sysinstall/backend-query/set-mirror.sh b/usr.sbin/pc-sysinstall/backend-query/set-mirror.sh
new file mode 100755
index 0000000..31c121d
--- /dev/null
+++ b/usr.sbin/pc-sysinstall/backend-query/set-mirror.sh
@@ -0,0 +1,40 @@
+#!/bin/sh
+#-
+# Copyright (c) 2010 iXSystems, Inc. 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 THE AUTHOR AND CONTRIBUTORS ``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 SHALL THE AUTHOR OR CONTRIBUTORS 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.
+#
+# $FreeBSD$
+
+. ${PROGDIR}/backend/functions.sh
+. ${PROGDIR}/backend/functions-ftp.sh
+
+MIRROR="${1}"
+
+if [ -z "${MIRROR}" ]
+then
+ echo "Error: No mirror specified!"
+ exit 1
+fi
+
+set_ftp_mirror "${MIRROR}"
+exit 0
diff --git a/usr.sbin/pc-sysinstall/backend/Makefile b/usr.sbin/pc-sysinstall/backend/Makefile
index 9207726..fa51d50 100644
--- a/usr.sbin/pc-sysinstall/backend/Makefile
+++ b/usr.sbin/pc-sysinstall/backend/Makefile
@@ -2,7 +2,7 @@
FILES= functions-bsdlabel.sh functions-cleanup.sh functions-disk.sh \
functions-extractimage.sh functions-ftp.sh functions-installcomponents.sh \
- functions-localize.sh functions-mountdisk.sh \
+ functions-installpackages.sh functions-localize.sh functions-mountdisk.sh \
functions-mountoptical.sh functions-networking.sh \
functions-newfs.sh functions-packages.sh functions-parse.sh \
functions-runcommands.sh functions-unmount.sh \
diff --git a/usr.sbin/pc-sysinstall/backend/functions-ftp.sh b/usr.sbin/pc-sysinstall/backend/functions-ftp.sh
index cd48538..3bf95a8 100755
--- a/usr.sbin/pc-sysinstall/backend/functions-ftp.sh
+++ b/usr.sbin/pc-sysinstall/backend/functions-ftp.sh
@@ -30,6 +30,8 @@
. ${BACKEND}/functions.sh
. ${BACKEND}/functions-parse.sh
+DEFAULT_FTP_SERVER="ftp.freebsd.org"
+
MAIN_FTP_SERVERS="\
Main Site: ftp.freebsd.org"
@@ -274,7 +276,25 @@ show_mirrors()
done
IFS="${SAVE_IFS}"
fi
-}
+};
+
+set_ftp_mirror()
+{
+ MIRROR="${1}"
+ echo "${MIRROR}" > "${CONFDIR}/mirrors.conf"
+};
+
+get_ftp_mirror()
+{
+ MIRROR="${DEFAULT_FTP_SERVER}"
+ if [ -f "${CONFDIR}/mirrors.conf" ]
+ then
+ MIRROR=`cat "${CONFDIR}/mirrors.conf"`
+ fi
+
+ VAL="${MIRROR}"
+ export VAL
+};
get_ftp_mirrors()
{
@@ -371,4 +391,4 @@ get_ftp_mirrors()
fi
export VAL
-}
+};
diff --git a/usr.sbin/pc-sysinstall/backend/functions-installpackages.sh b/usr.sbin/pc-sysinstall/backend/functions-installpackages.sh
new file mode 100755
index 0000000..8d5f408
--- /dev/null
+++ b/usr.sbin/pc-sysinstall/backend/functions-installpackages.sh
@@ -0,0 +1,118 @@
+#!/bin/sh
+#-
+# Copyright (c) 2010 iXsystems, Inc. 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 THE AUTHOR AND CONTRIBUTORS ``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 SHALL THE AUTHOR OR CONTRIBUTORS 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.
+#
+# $FreeBSD$
+
+# Functions which check and load any optional packages specified in the config
+
+. ${BACKEND}/functions.sh
+. ${BACKEND}/functions-parse.sh
+
+# Recursively determine all dependencies for this package
+determine_package_dependencies()
+{
+ local PKGNAME="${1}"
+ local DEPFILE="${2}"
+
+ grep "${PKGNAME}" "${DEPFILE}" >/dev/null
+ if [ "$?" -ne "0" ]
+ then
+ echo "${PKGNAME}" >> "${DEPFILE}"
+ get_package_dependencies "${PKGNAME}" "1"
+ local DEPS="${VAL}"
+
+ for d in ${DEPS}
+ do
+ get_all_package_dependencies "${d}" "${DEPFILE}"
+ done
+ fi
+};
+
+# Fetch packages dependencies from a file
+fetch_package_dependencies()
+{
+ local DEPFILE
+ local DEPS
+
+ DEPFILE="${1}"
+ DEPS=`cat "${DEPFILE}"`
+
+ for d in ${DEPS}
+ do
+ get_package_short_name "${d}"
+ SNAME="${VAL}"
+
+ get_package_category "${SNAME}"
+ CATEGORY="${VAL}"
+
+ fetch_package "${CATEGORY}" "${d}"
+ done
+};
+
+# Check for any packages specified, and begin loading them
+install_packages()
+{
+ # First, lets check and see if we even have any packages to install
+ get_value_from_cfg installPackages
+ if [ ! -z "${VAL}" ]
+ then
+ mkdir -p "${PKGTMPDIR}"
+
+ HERE=`pwd`
+ cd "${PKGTMPDIR}"
+
+ # Lets start by cleaning up the string and getting it ready to parse
+ strip_white_space ${VAL}
+ PACKAGES=`echo ${VAL} | sed -e "s|,| |g"`
+ for i in $PACKAGES
+ do
+ if get_package_name "${i}"
+ then
+ PKGNAME="${VAL}"
+ DEPFILE="${PKGTMPDIR}/.${PKGNAME}.deps"
+
+ touch "${DEPFILE}"
+ determine_package_dependencies "${PKGNAME}" "${DEPFILE}"
+ fetch_package_dependencies "${DEPFILE}"
+
+ # If the package is not already installed, install it!
+ if ! run_chroot_cmd "pkg_info -e ${PKGNAME}"
+ then
+ echo_log "Adding package ${PKGNAME}"
+ pkg_add -C "${FSMNT}" "${PKGNAME}.tbz" >/dev/null 2>&1
+ if [ "$?" -eq "0" ]
+ then
+ echo_log "${PKGNAME} successfully installed!"
+ fi
+ fi
+
+ rm "${DEPFILE}"
+ fi
+ done
+
+ #rm -rf "${PKGTMPDIR}"
+ cd "${HERE}"
+ fi
+};
diff --git a/usr.sbin/pc-sysinstall/backend/functions-packages.sh b/usr.sbin/pc-sysinstall/backend/functions-packages.sh
index 345b649..a522718 100755
--- a/usr.sbin/pc-sysinstall/backend/functions-packages.sh
+++ b/usr.sbin/pc-sysinstall/backend/functions-packages.sh
@@ -34,29 +34,30 @@
get_package_index()
{
- FTP_SERVER="${1}"
- FTP_DIR="ftp://${FTP_SERVER}/pub/FreeBSD/releases/${FBSD_ARCH}/${FBSD_BRANCH}/packages"
INDEX_FILE="INDEX"
USE_BZIP2=0
+ get_ftp_mirror
+ FTP_SERVER="${VAL}"
+
+ FTP_DIR="ftp://${FTP_SERVER}/pub/FreeBSD/releases/${FBSD_ARCH}/${FBSD_BRANCH}/packages"
+
if [ -f "/usr/bin/bzip2" ]
then
INDEX_FILE="${INDEX_FILE}.bz2"
USE_BZIP2=1
fi
- ftp "${FTP_DIR}/${INDEX_FILE}"
- if [ -f "${INDEX_FILE}" ]
- then
- if [ "${USE_BZIP2}" -eq "1" ]
- then
- bzip2 -d "${INDEX_FILE}"
- INDEX_FILE="${INDEX_FILE%.bz2}"
- fi
+ fetch_file "${FTP_DIR}/${INDEX_FILE}" "${PKGDIR}/${INDEX_FILE}" "1"
- mv "${INDEX_FILE}" "${PKGDIR}"
+ HERE=`pwd`
+ cd "${PKGDIR}"
+ if [ -f "${INDEX_FILE}" ] && [ "${USE_BZIP2}" -eq "1" ]
+ then
+ bzip2 -d "${INDEX_FILE}"
fi
-}
+ cd "${HERE}"
+};
parse_package_index()
{
@@ -67,9 +68,11 @@ parse_package_index()
while read -r line
do
+ PKGNAME=""
CATEGORY=""
PACKAGE=""
DESC=""
+ DEPS=""
i=0
SAVE_IFS="${IFS}"
@@ -77,7 +80,11 @@ parse_package_index()
for part in ${line}
do
- if [ "${i}" -eq "1" ]
+ if [ "${i}" -eq "0" ]
+ then
+ PKGNAME="${part}"
+
+ elif [ "${i}" -eq "1" ]
then
PACKAGE=`basename "${part}"`
@@ -88,17 +95,23 @@ parse_package_index()
elif [ "${i}" -eq "6" ]
then
CATEGORY=`echo "${part}" | cut -f1 -d' '`
+
+ elif [ "${i}" -eq "8" ]
+ then
+ DEPS="${part}"
fi
i=$((i+1))
done
echo "${CATEGORY}|${PACKAGE}|${DESC}" >> "${INDEX_FILE}.parsed"
+ echo "${PACKAGE}|${PKGNAME}|${DEPS}" >> "${INDEX_FILE}.deps"
+
IFS="${SAVE_IFS}"
done
exec 0<&3
-}
+};
show_package_file()
{
@@ -117,7 +130,7 @@ show_package_file()
done
exec 0<&3
-}
+};
show_packages_by_category()
{
@@ -128,7 +141,7 @@ show_packages_by_category()
grep "^${CATEGORY}|" "${INDEX_FILE}" > "${TMPFILE}"
show_package_file "${TMPFILE}"
rm "${TMPFILE}"
-}
+};
show_package_by_name()
{
@@ -140,9 +153,118 @@ show_package_by_name()
grep "^${CATEGORY}|${PACKAGE}" "${INDEX_FILE}" > "${TMPFILE}"
show_package_file "${TMPFILE}"
rm "${TMPFILE}"
-}
+};
show_packages()
{
show_package_file "${PKGDIR}/INDEX.parsed"
-}
+};
+
+get_package_dependencies()
+{
+ PACKAGE="${1}"
+ LONG="${2:-0}"
+ RES=0
+
+ INDEX_FILE="${PKGDIR}/INDEX.deps"
+ REGEX="^${PACKAGE}|"
+
+ if [ "${LONG}" -ne "0" ]
+ then
+ REGEX="^.*|${PACKAGE}|"
+ fi
+
+ LINE=`grep "${REGEX}" "${INDEX_FILE}" 2>/dev/null`
+ DEPS=`echo "${LINE}"|cut -f3 -d'|'`
+
+ VAL="${DEPS}"
+ export VAL
+
+ if [ -z "${VAL}" ]
+ then
+ RES=1
+ fi
+
+ return ${RES}
+};
+
+get_package_name()
+{
+ PACKAGE="${1}"
+ RES=0
+
+ INDEX_FILE="${PKGDIR}/INDEX.deps"
+ REGEX="^${PACKAGE}|"
+
+ LINE=`grep "${REGEX}" "${INDEX_FILE}" 2>/dev/null`
+ NAME=`echo "${LINE}"|cut -f2 -d'|'`
+
+ VAL="${NAME}"
+ export VAL
+
+ if [ -z "${VAL}" ]
+ then
+ RES=1
+ fi
+
+ return ${RES}
+};
+
+get_package_short_name()
+{
+ PACKAGE="${1}"
+ RES=0
+
+ INDEX_FILE="${PKGDIR}/INDEX.deps"
+ REGEX="^.*|${PACKAGE}|"
+
+ LINE=`grep "${REGEX}" "${INDEX_FILE}" 2>/dev/null`
+ NAME=`echo "${LINE}"|cut -f1 -d'|'`
+
+ VAL="${NAME}"
+ export VAL
+
+ if [ -z "${VAL}" ]
+ then
+ RES=1
+ fi
+
+ return ${RES}
+};
+
+get_package_category()
+{
+ PACKAGE="${1}"
+ INDEX_FILE="${PKGDIR}/INDEX.parsed"
+ RES=0
+
+ LINE=`grep "|${PACKAGE}|" "${INDEX_FILE}" 2>/dev/null`
+ NAME=`echo "${LINE}"|cut -f1 -d'|'`
+
+ VAL="${NAME}"
+ export VAL
+
+ if [ -z "${VAL}" ]
+ then
+ RES=1
+ fi
+
+ return ${RES}
+};
+
+fetch_package()
+{
+ CATEGORY="${1}"
+ PACKAGE="${2}"
+
+ get_ftp_mirror
+ FTP_SERVER="${VAL}"
+
+ PACKAGE="${PACKAGE}.tbz"
+ if [ ! -f "${PKGTMPDIR}/${PACKAGE}" ]
+ then
+ PKGPATH="${CATEGORY}/${PACKAGE}"
+ FTP_PATH="ftp://${FTP_SERVER}/pub/FreeBSD/releases/${FBSD_ARCH}/${FBSD_BRANCH}/packages/${PKGPATH}"
+ fetch_file "${FTP_PATH}" "${PKGTMPDIR}/" "0"
+ fi
+};
diff --git a/usr.sbin/pc-sysinstall/backend/functions-runcommands.sh b/usr.sbin/pc-sysinstall/backend/functions-runcommands.sh
index beb1d98..fccc00a 100755
--- a/usr.sbin/pc-sysinstall/backend/functions-runcommands.sh
+++ b/usr.sbin/pc-sysinstall/backend/functions-runcommands.sh
@@ -37,7 +37,10 @@ run_chroot_cmd()
echo "$CMD" >${FSMNT}/.runcmd.sh
chmod 755 ${FSMNT}/.runcmd.sh
chroot ${FSMNT} sh /.runcmd.sh
+ RES=$?
+
rm ${FSMNT}/.runcmd.sh
+ return ${RES}
};
run_chroot_script()
@@ -50,8 +53,10 @@ run_chroot_script()
echo_log "Running chroot script: ${SCRIPT}"
chroot ${FSMNT} /.${SBASE}
+ RES=$?
rm ${FSMNT}/.${SBASE}
+ return ${RES}
};
@@ -64,7 +69,10 @@ run_ext_cmd()
echo "${CMD}"> ${TMPDIR}/.runcmd.sh
chmod 755 ${TMPDIR}/.runcmd.sh
sh ${TMPDIR}/.runcmd.sh
+ RES=$?
+
rm ${TMPDIR}/.runcmd.sh
+ return ${RES}
};
diff --git a/usr.sbin/pc-sysinstall/backend/parseconfig.sh b/usr.sbin/pc-sysinstall/backend/parseconfig.sh
index 3c4ed4f..89b25ea 100755
--- a/usr.sbin/pc-sysinstall/backend/parseconfig.sh
+++ b/usr.sbin/pc-sysinstall/backend/parseconfig.sh
@@ -35,12 +35,15 @@
. ${BACKEND}/functions-disk.sh
. ${BACKEND}/functions-extractimage.sh
. ${BACKEND}/functions-installcomponents.sh
+. ${BACKEND}/functions-installpackages.sh
. ${BACKEND}/functions-localize.sh
. ${BACKEND}/functions-mountdisk.sh
. ${BACKEND}/functions-networking.sh
. ${BACKEND}/functions-newfs.sh
+. ${BACKEND}/functions-packages.sh
. ${BACKEND}/functions-parse.sh
. ${BACKEND}/functions-runcommands.sh
+. ${BACKEND}/functions-ftp.sh
. ${BACKEND}/functions-unmount.sh
. ${BACKEND}/functions-upgrade.sh
. ${BACKEND}/functions-users.sh
@@ -117,6 +120,9 @@ then
# Check if we have any optional modules to load
install_components
+ # Check if we have any packages to install
+ install_packages
+
# Do any localization in configuration
run_localize
@@ -158,6 +164,9 @@ else
# Check if we have any optional modules to load
install_components
+ # Check if we have any packages to install
+ install_packages
+
# All finished, unmount the file-systems
unmount_upgrade
diff --git a/usr.sbin/pc-sysinstall/conf/pc-sysinstall.conf b/usr.sbin/pc-sysinstall/conf/pc-sysinstall.conf
index 7d0aa4f..33f3753 100644
--- a/usr.sbin/pc-sysinstall/conf/pc-sysinstall.conf
+++ b/usr.sbin/pc-sysinstall/conf/pc-sysinstall.conf
@@ -51,6 +51,10 @@ export COMPFILEDIR
COMPTMPDIR="/usr/.componenttmp"
export COMPTMPDIR
+# set the package temp directory, which is relative to FSMNT
+PKGTMPDIR="/usr/.pkgtmp"
+export PKGTMPDIR
+
# Variables to set the location of installation data
UZIP_FILE="PCBSD.ufs.uzip"
TAR_FILE="PCBSD.tbz"
diff --git a/usr.sbin/pc-sysinstall/doc/help-index b/usr.sbin/pc-sysinstall/doc/help-index
index d9e52b5..6a0f1bc 100644
--- a/usr.sbin/pc-sysinstall/doc/help-index
+++ b/usr.sbin/pc-sysinstall/doc/help-index
@@ -34,10 +34,10 @@ System Query Commands
list-components
Returns a listing of the available components which can be installed
- list-mirrors
+ list-mirrors [country]
Returns a listing of the available FTP mirrors
- list-packages
+ list-packages [category] [package]
Returns a listing of the available packages
list-rsync-backups <user> <host> <port>
@@ -55,6 +55,9 @@ System Query Commands
sys-mem
Return the size of installed system RAM in MegaBytes
+ set-mirror <mirror>
+ Set FTP mirror
+
test-netup
Test if an internet connection is available
diff --git a/usr.sbin/pc-sysinstall/pc-sysinstall/pc-sysinstall.sh b/usr.sbin/pc-sysinstall/pc-sysinstall/pc-sysinstall.sh
index a26e304..85bb6af 100755
--- a/usr.sbin/pc-sysinstall/pc-sysinstall/pc-sysinstall.sh
+++ b/usr.sbin/pc-sysinstall/pc-sysinstall/pc-sysinstall.sh
@@ -43,8 +43,11 @@ export PROGDIR
COMPDIR="${PROGDIR}/components"
export COMPDIR
+CONFDIR="${PROGDIR}/conf"
+export CONFDIR
+
# Set this to the packages location
-PKGDIR="${PROGDIR}/conf"
+PKGDIR="${CONFDIR}"
export PKGDIR
# End of user-editable configuration
@@ -184,6 +187,10 @@ case $1 in
get-packages) ${QUERYDIR}/get-packages.sh "${2}"
;;
+ # Function to set FTP mirror
+ set-mirror) ${QUERYDIR}/set-mirror.sh "${2}"
+ ;;
+
# Function which allows setting up of SSH keys
setup-ssh-keys) ${QUERYDIR}/setup-ssh-keys.sh "${2}" "${3}" "${4}"
;;
OpenPOWER on IntegriCloud