Make mkarchiso a bit more KISS
Remove the need for a configuration file. Some of the command line options had to be switched up a bit in order to do this. Also simplify the package list- only one package list is needed, not a directory, and additional packages can be specified on the command line. Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
parent
2f10bc9b79
commit
ef89b8a29f
57
mkarchiso
57
mkarchiso
@ -1,8 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
CONFIG="$(pwd)/mkarchiso.conf"
|
||||
CPIOCONFIG="$(pwd)/archiso-mkinitcpio.conf"
|
||||
DEF_CONFIG_DIR="$(pwd)/default-config"
|
||||
PKGFILE="$(pwd)/packages.list"
|
||||
PKGLIST=""
|
||||
QUIET="y"
|
||||
FORCE="n"
|
||||
|
||||
@ -10,8 +11,6 @@ command_name=""
|
||||
work_dir=""
|
||||
isoname=""
|
||||
|
||||
PKGDIR="$(pwd)"
|
||||
|
||||
APPNAME=$(basename "${0}")
|
||||
|
||||
# usage: usage <exitvalue>
|
||||
@ -19,12 +18,12 @@ usage ()
|
||||
{
|
||||
echo "usage ${APPNAME} [options] command <command options>"
|
||||
echo " general options:"
|
||||
echo " -c CONFIG Use CONFIG file. default: ${CONFIG}"
|
||||
echo " -i CPIO_CONFIG Use CONFIG file for mkinitcpio. default: ${CPIOCONFIG}"
|
||||
echo " -p PKGFILE_DIR Look for package list files in DIR. default: ${PKGDIR}"
|
||||
echo " -f Force overwrite of working files/squashfs image/iso"
|
||||
echo " -v Verbose output. Default: no"
|
||||
echo " -h This message"
|
||||
echo " -i CPIO_CONFIG Use CONFIG file for mkinitcpio. default: ${CPIOCONFIG}"
|
||||
echo " -P PKGFILE File with list of packages to install. default: ${PKGFILE}"
|
||||
echo " -p PACKAGE Additional package to install, can be used multiple times"
|
||||
echo " -v Enable verbose output."
|
||||
echo " -h This message."
|
||||
echo " commands:"
|
||||
echo " install <working dir> : where to build the ISO root"
|
||||
echo " squash <working dir> : generate a squashfs image of the ISO root"
|
||||
@ -33,11 +32,11 @@ usage ()
|
||||
exit $1
|
||||
}
|
||||
|
||||
while getopts 'c:i:p:fvh' arg; do
|
||||
while getopts 'i:P:p:fvh' arg; do
|
||||
case "${arg}" in
|
||||
c) CONFIG="${OPTARG}" ;;
|
||||
i) CPIOCONFIG="${OPTARG}" ;;
|
||||
p) PKGDIR="${OPTARG}" ;;
|
||||
P) PKGFILE="${OPTARG}" ;;
|
||||
p) PKGLIST="${PKGLIST} ${OPTARG}" ;;
|
||||
f) FORCE="y" ;;
|
||||
v) QUIET="n" ;;
|
||||
h|?) usage 0 ;;
|
||||
@ -67,15 +66,6 @@ esac
|
||||
|
||||
[ "x${work_dir}" = "x" ] && (echo "please specify a working directory" && usage 1)
|
||||
|
||||
#TODO - do we even need a config file?
|
||||
if [ -e "${CONFIG}" ]; then
|
||||
source "${CONFIG}"
|
||||
else
|
||||
echo "error: Config '${CONFIG}' does not exist, aborting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# {{{ Build
|
||||
isoroot="${work_dir}/iso"
|
||||
instroot="${work_dir}/install"
|
||||
|
||||
@ -107,7 +97,6 @@ install_pkgfile ()
|
||||
if [ -e "${1}" ]; then
|
||||
toinstall=""
|
||||
while read pkg; do
|
||||
echo $ignorepkgs | grep "\<$pkg\>" >/dev/null 2>&1 && continue
|
||||
toinstall="${toinstall} ${pkg}"
|
||||
done < ${1}
|
||||
_pacman "${toinstall}"
|
||||
@ -130,30 +119,18 @@ if [ "${command_name}" = "install" -o "${command_name}" = "all" ]; then
|
||||
mkdir -p "${instroot}"
|
||||
|
||||
echo "Installing packages..."
|
||||
for pkgfile in ${package_files}; do
|
||||
echo " Installing packages from '$pkgfile'"
|
||||
install_pkgfile "${PKGDIR}/$pkgfile.packages"
|
||||
done
|
||||
for pkg in ${additional_packages}; do
|
||||
echo " Installing packages from '${PKGFILE}'"
|
||||
install_pkgfile "${PKGFILE}"
|
||||
|
||||
for pkg in ${PKGLIST}; do
|
||||
echo " Installing package '${pkg}'"
|
||||
_pacman "${pkg}"
|
||||
done
|
||||
|
||||
echo "Installing kernel '${kernelpkg}'"
|
||||
if ! _pacman "${kernelpkg}" ; then
|
||||
echo "error: pacman failed to install '${kernelpkg}', aborting."
|
||||
exit 1
|
||||
fi
|
||||
echo "Updating kernel module dependancies"
|
||||
kernelver=$(_kversion)
|
||||
kernelsuffix=${kernelver##*-}
|
||||
echo "Kernel Version ${kernelver} (${kernelsuffix}) installed - installing modules..."
|
||||
if [ -e "${PKGDIR}/${kernelsuffix}.modules" ]; then
|
||||
install_pkgfile "${PKGDIR}/${kernelsuffix}.modules"
|
||||
fi
|
||||
|
||||
echo "Updating module dependancies"
|
||||
[ "${kernelsuffix}" = "ARCH" ] && kernelsuffix=""
|
||||
depmod -a -b "${instroot}" -v "${kernelver}" -F "${instroot}/boot/System.map26${kernelsuffix}" >/dev/null
|
||||
depmod -a -b "${instroot}" -v "${kernelver}" -F "${instroot}/boot/System.map26" >/dev/null
|
||||
# remove the initcpio images that were generated for the host system
|
||||
find "${instroot}/boot" -name *.img -delete
|
||||
|
||||
echo "Applying default configuration for the Arch ISO"
|
||||
|
@ -1,11 +0,0 @@
|
||||
# vim: set ft=sh:
|
||||
#TODO this can all be removed in place of commandline params to mkarchiso
|
||||
kernelpkg="kernel26"
|
||||
packager_name="Archlinux User"
|
||||
|
||||
package_files="base"
|
||||
additional_packages=""
|
||||
ignorepkgs="devfsd hotplug pcmcia-cs"
|
||||
|
||||
qemu_test="n"
|
||||
qemuparams="" #"-vnc 1"
|
@ -1,56 +1,74 @@
|
||||
bash
|
||||
bin86
|
||||
binutils
|
||||
bzip2
|
||||
coreutils
|
||||
cpio
|
||||
cracklib
|
||||
cryptsetup
|
||||
db
|
||||
dcron
|
||||
dhcpcd
|
||||
dialog
|
||||
diffutils
|
||||
dnsutils
|
||||
dosfstools
|
||||
e2fsprogs
|
||||
ed
|
||||
fakeroot
|
||||
elinks
|
||||
file
|
||||
filesystem
|
||||
findutils
|
||||
fuse
|
||||
gawk
|
||||
gcc
|
||||
gettext
|
||||
glibc
|
||||
grep
|
||||
groff
|
||||
grub-gfx
|
||||
gzip
|
||||
hdparm
|
||||
initscripts
|
||||
iptables
|
||||
iputils
|
||||
ipw3945
|
||||
jfsutils
|
||||
kbd
|
||||
kernel-headers
|
||||
kernel26
|
||||
less
|
||||
lftp
|
||||
libpcap
|
||||
libusb
|
||||
licenses
|
||||
lilo
|
||||
lshwd
|
||||
lsof
|
||||
lvm2
|
||||
lzo2
|
||||
madwifi
|
||||
madwifi-utils
|
||||
mailx
|
||||
man
|
||||
man-pages
|
||||
mdadm
|
||||
memtest86+
|
||||
mkinitcpio
|
||||
mktemp
|
||||
module-init-tools
|
||||
nano
|
||||
ncurses
|
||||
ndiswrapper
|
||||
ndiswrapper-utils
|
||||
net-tools
|
||||
netcat
|
||||
netkit-telnet
|
||||
nfs-utils
|
||||
ntfs-3g
|
||||
ntfsprogs
|
||||
nmap
|
||||
openssh
|
||||
openssl
|
||||
openvpn
|
||||
pacman
|
||||
pam
|
||||
parted
|
||||
@ -59,7 +77,9 @@ pcmciautils
|
||||
pcre
|
||||
perl
|
||||
popt
|
||||
portmap
|
||||
ppp
|
||||
pptpclient
|
||||
procinfo
|
||||
procps
|
||||
psmisc
|
||||
@ -67,9 +87,12 @@ python
|
||||
readline
|
||||
reiserfsprogs
|
||||
rp-pppoe
|
||||
rt2500
|
||||
screen
|
||||
sed
|
||||
shadow
|
||||
squashfs-tools
|
||||
sudo
|
||||
sysfsutils
|
||||
syslog-ng
|
||||
sysvinit
|
||||
@ -81,11 +104,16 @@ unionfs-utils
|
||||
unrar
|
||||
unzip
|
||||
usbutils
|
||||
util-linux
|
||||
util-linux-ng
|
||||
vi
|
||||
vim
|
||||
wget
|
||||
which
|
||||
wireless_tools
|
||||
wlan-ng26
|
||||
wlan-ng26-utils
|
||||
wpa_supplicant
|
||||
xfsdump
|
||||
xfsprogs
|
||||
zd1211-firmware
|
||||
zlib
|
@ -1,5 +0,0 @@
|
||||
ipw3945
|
||||
madwifi
|
||||
ndiswrapper
|
||||
rt2500
|
||||
wlan-ng26
|
Loading…
Reference in New Issue
Block a user