[lxc-devel] [PATCH] plamo: Improve template
Stéphane Graber
stgraber at ubuntu.com
Sat Jan 18 15:14:38 UTC 2014
On Sat, Jan 18, 2014 at 10:32:35PM +0900, KATOH Yasufumi wrote:
> * make simple
> * change default download site to http://ftp.ring.gr.jp
>
> Signed-off-by: TAMUKI Shoichi <tamuki at linet.gr.jp>
> Signed-off-by: KATOH Yasufumi <karma at jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber at ubuntu.com>
> ---
> templates/lxc-plamo.in | 107 +++++++++++++++++++------------------------------
> 1 file changed, 41 insertions(+), 66 deletions(-)
>
> diff --git a/templates/lxc-plamo.in b/templates/lxc-plamo.in
> index 9af29e4..354cad9 100644
> --- a/templates/lxc-plamo.in
> +++ b/templates/lxc-plamo.in
> @@ -1,4 +1,4 @@
> -#!/bin/bash
> +#!/bin/bash -eu
>
> #
> # template script for generating Plamo Linux container for LXC
> @@ -28,35 +28,15 @@
> # ref. https://github.com/Ponce/lxc-slackware/blob/master/lxc-slackware
> # lxc-ubuntu script
>
> -set -eu
> -
> [ -r /etc/default/lxc ] && . /etc/default/lxc
>
> -LXC_TEMPLATE_CONFIG="@LXCTEMPLATECONFIG@"
> -
> -DOWNLOAD_SCHEME=${DOWNLOAD_SCHEME:-"http"}
> -MIRRORSRV=${MIRRORSRV:-"ftp.ne.jp"}
> -MIRRORPATH=${MIRRORPATH:-"/Linux/distributions/plamolinux"}
> -CATEGORY[0]=${CATEGORY:-"00_base"}
> -IGNOREPKG[0]=${IGNOREPKGS:-"grub kernel lilo linux_firmware microcode_ctl"}
> -CATEGORY[1]="01_minimum"
> -IGNOREPKG[1]="cpufreqd cpufrequtils gpm"
> -CATEGORY[2]="01_minimum/alsa.txz"
> -IGNOREPKG[2]=""
> -CATEGORY[3]="01_minimum/aspell.txz"
> -IGNOREPKG[3]=""
> -CATEGORY[4]="01_minimum/devel.txz"
> -IGNOREPKG[4]=""
> -CATEGORY[5]="01_minimum/gnupg_tls.txz"
> -IGNOREPKG[5]=""
> -CATEGORY[6]="01_minimum/network.txz"
> -IGNOREPKG[6]=""
> -CATEGORY[7]="01_minimum/nfs.txz"
> -IGNOREPKG[7]=""
> -CATEGORY[8]="01_minimum/tcl.txz"
> -IGNOREPKG[8]=""
> -
> -CATEGORY_PATH=""
> +DLSCHEME=${DLSCHEME:-"http"}
> +MIRRORSRV=${MIRRORSRV:-"ftp.ring.gr.jp"}
> +MIRRORPATH=${MIRRORPATH:-"/pub/linux/Plamo"}
> +CATEGORIES=${CATEGORIES:-"00_base 01_minimum"}
> +EXTRACTGRS=${EXTRACTGRS:-"Hamradio"}
> +IGNOREPKGS=${IGNOREPKGS:-"grub kernel lilo linux_firmware microcode_ctl
> + cpufreqd cpufrequtils gpm cqrlog hamlib fldigi"}
>
> download_plamo() {
> # check the mini plamo was not already downloaded
> @@ -67,32 +47,26 @@ download_plamo() {
> # download a mini plamo into a cache
> echo "Downloading Plamo-$release minimal..."
> cd $ptcache
> - for i in `seq 0 $((${#CATEGORY[@]} - 1))` ; do
> - CATEGORYPATH=${MIRRORPATH}/Plamo-${release}/${arch}/plamo/${CATEGORY[$i]}
> - WGETOPT="-nv -r -l1 -e robots=off -nd --no-parent -c --retr-symlinks -A .txz"
> - EXCLUDE_OPT=""
> - if [ $DOWNLOAD_SCHEME = "http" ] ; then
> - if [ -n "${IGNOREPKG[$i]}" ] ; then
> - for p in ${IGNOREPKG[$i]} ; do
> - EXCLUDE_OPT="${EXCLUDE_OPT} -R ${p}* "
> - done
> - fi
> - if ! wget ${WGETOPT} ${EXCLUDE_OPT} -X ${CATEGORY_PATH}/old http://${MIRRORSRV}${CATEGORYPATH} ; then
> - echo "Failed to download the rootfs, aborting."
> - return 1
> - fi
> - elif [ $DOWNLOAD_SCHEME = "ftp" ] ; then
> - if [ -n "${IGNOREPKG[$i]}" ] ; then
> - for p in ${IGNOREPKG[$i]} ; do
> - EXCLUDE_OPT="${EXCLUDE_OPT} -x ${p} "
> - done
> - fi
> - if ! lftp -c "open ${MIRRORSRV} && cd ${CATEGORYPATH} && mirror -i .txz -x old ${EXCLUDE_OPT} -r ." ; then
> - echo "Failed to download the rootfs, aborting."
> - return 1
> - fi
> - else
> - echo "Invalid DOWNLOAD_SCHEME value (can set http or ftp). "
> + case $DLSCHEME in http) depth=2 ;; ftp) depth=3 ;; esac
> + rej=${IGNOREPKGS%% *} ; [ -n "$rej" ] && rej="$rej-*"
> + for p in ${IGNOREPKGS#* } ; do rej="$rej,$p-*" ; done
> + for i in $CATEGORIES ; do
> + wget -nv -e robots=off -r -l $depth -nd -A .tgz,.txz -R $rej \
> + -I $MIRRORPATH/Plamo-$release/$arch/plamo/$i \
> + -X $MIRRORPATH/Plamo-$release/$arch/plamo/$i/old \
> + $DLSCHEME://$MIRRORSRV$MIRRORPATH/Plamo-$release/$arch/plamo/$i
> + if [ $? -ne 0 ] ; then
> + echo "Failed to download the rootfs, aborting."
> + return 1
> + fi
> + done
> + for i in $EXTRACTGRS ; do
> + wget -nv -e robots=off -r -l $depth -nd -A .tgz,.txz -R $rej \
> + -I $MIRRORPATH/Plamo-$release/$arch/contrib/$i \
> + -X $MIRRORPATH/Plamo-$release/$arch/contrib/$i/old \
> + $DLSCHEME://$MIRRORSRV$MIRRORPATH/Plamo-$release/$arch/contrib/$i
> + if [ $? -ne 0 ] ; then
> + echo "Failed to download the rootfs, aborting."
> return 1
> fi
> done
> @@ -133,7 +107,7 @@ install_plamo() {
> echo "Installing packages to $rtcache..."
> if [ ! -d $rtcache ] ; then
> mkdir -p $rtcache
> - for p in `ls $dlcache` ; do
> + for p in `ls -cr $dlcache/*.t?z` ; do
> installpkg -root $rtcache -priority ADD $p
> done
> fi
> @@ -241,23 +215,24 @@ configure_plamo() {
> }
>
> copy_configuration() {
> -
> - # Create the fstab (empty by default)
> - touch $path/fstab
> -
> - if ! cat <<- EOF >> $path/config ; then
> + ret=0
> + cat <<- EOF >> $path/config || let ret++
> lxc.utsname = $name
> - lxc.arch = $arch
> lxc.mount = $path/fstab
> + lxc.arch = $arch
> EOF
> + if [ -f "@LXCTEMPLATECONFIG@/plamo.common.conf" ] ; then
> + cat <<- "EOF" >> $path/config || let ret++
> +
> + lxc.include = @LXCTEMPLATECONFIG@/plamo.common.conf
> + EOF
> + fi
> + # create the fstab (empty by default)
> + touch $path/fstab || let ret++
> + if [ $ret -ne 0 ] ; then
> echo "Failed to add configuration."
> return 1
> fi
> -
> - if [ -e "${LXC_TEMPLATE_CONFIG}/plamo.common.conf" ] ; then
> - echo "lxc.include = ${LXC_TEMPLATE_CONFIG}/plamo.common.conf" >> $path/config
> - fi
> -
> return 0
> }
>
> --
> 1.8.3.4 (Apple Git-47)
>
> _______________________________________________
> lxc-devel mailing list
> lxc-devel at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-devel
--
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20140118/1eacaad8/attachment.pgp>
More information about the lxc-devel
mailing list