diff options
Diffstat (limited to 'functions/packagelists.sh')
-rwxr-xr-x | functions/packagelists.sh | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/functions/packagelists.sh b/functions/packagelists.sh new file mode 100755 index 0000000..f25b5fb --- /dev/null +++ b/functions/packagelists.sh @@ -0,0 +1,42 @@ +#!/bin/sh + +# packagelists.sh - expands package list includes +# Copyright (C) 2006-2007 Daniel Baumann <daniel@debian.org> +# +# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING. +# This is free software, and you are welcome to redistribute it +# under certain conditions; see COPYING for details. + +set -e + +Expand_packagelist () +{ + # ${1} List name + # ${2} Default path to search + # ${3} Fallback path to search (optional) + + # Does list exist in default path? + if [ -e "${2}/${1}" ]; + then + Expand_packagelist_file "${2}/${1}" "${@}" + else + # If list exists in fallback, include it. + if [ -n "${3}" ] && [ -e "${3}/${1}" ] + then + Expand_packagelist_file "${3}/${1}" "${@}" + fi + fi +} + +Expand_packagelist_file () +{ + local FILE="${1}" + shift + shift + + for INCLUDE in `sed -ne 's/^#<include> \(.*\)/\1/gp' "${FILE}"`; + do + Expand_packagelist "${INCLUDE}" "${@}" + done + sed -ne 's/^\([^#].*\)/\1\n/gp' "${FILE}" +} |