summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Schwarzott <zzam@gentoo.org>2007-06-03 13:39:48 +0000
committerMatthias Schwarzott <zzam@gentoo.org>2007-06-03 13:39:48 +0000
commit5625d8b854a9d95446af4608fcde1181cced0fc8 (patch)
tree2556e4d70e2958d29fd4a89c1330c7e466bfc0c4
downloadgentoo-vdr-scripts-5625d8b854a9d95446af4608fcde1181cced0fc8.tar.gz
gentoo-vdr-scripts-5625d8b854a9d95446af4608fcde1181cced0fc8.tar.bz2
gentoo-vdr-scripts-5625d8b854a9d95446af4608fcde1181cced0fc8.zip
Added eselect-module
svn path=/eselect-module/trunk/; revision=465
-rw-r--r--vdr.eselect205
1 files changed, 205 insertions, 0 deletions
diff --git a/vdr.eselect b/vdr.eselect
new file mode 100644
index 0000000..0ad4776
--- /dev/null
+++ b/vdr.eselect
@@ -0,0 +1,205 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id: bashcomp.eselect 367 2007-03-28 14:35:23Z pioto $
+
+DESCRIPTION="Manage VDR plugins"
+MAINTAINER="zzam@gentoo.org"
+SVN_DATE='$Date: $'
+VERSION=$(svn_date_to_version "${SVN_DATE}")
+
+find_plugins() {
+ local plugins plugin f plugindir="${ROOT}/usr/lib/vdr/plugins"
+
+ for f in ${plugindir}/libvdr-*.so* ; do
+ [[ -e ${f} ]] || continue
+
+ plugin="${f##*/libvdr-}"
+ plugin="${plugin%.so.*}"
+ plugins="${plugins}\n${plugin}"
+ done
+
+ echo -ne ${plugins} | sort -u
+}
+
+show_enabled_plugins() {
+ local plugins line conffile="${ROOT}/etc/conf.d/vdr.plugins"
+
+ exec 3<${conffile}
+ while read plugin <&3; do
+ [ "${plugin}" = "" ] && continue
+ [ "${plugin#"#"}" != "${plugin}" ] && continue
+ plugins="${plugins}\n${plugin}"
+ done
+
+ echo -ne ${plugins} | sort -u
+}
+
+is_enabled() {
+ local conffile="${ROOT}/etc/conf.d/vdr.plugins"
+
+ egrep -q "^${1}\$" "${conffile}" || return 1
+ return 0
+}
+
+plugin_exists() {
+ local f plugindir="${ROOT}/usr/lib/vdr/plugins"
+
+ for f in ${plugindir}/libvdr-${1}.so.*; do
+ [[ -e "${f}" ]] && return 0
+ done
+ return 1
+}
+
+### show action ###
+
+describe_show() {
+ echo "Show enabled VDR plugins"
+}
+
+do_show() {
+ local plugins
+ [[ -z "${@}" ]] || die -q "Too many parameters"
+
+ plugins=( $(show_enabled_plugins) )
+
+ write_list_start "Enabled VDR plugins:"
+ if [[ -n "${plugins[@]}" ]] ; then
+ set -- "${plugins[@]}"
+ for plugin; do
+ write_kv_list_entry "${plugin}" ""
+ done
+ else
+ write_kv_list_entry "(none enabled)" ""
+ fi
+}
+
+### list action ###
+
+describe_list() {
+ echo "List available VDR plugins"
+}
+
+do_list() {
+ local opts
+ plugins=( $(find_plugins) )
+ write_list_start "Available VDR plugins:"
+
+ if [[ -n "${plugins[@]}" ]] ; then
+ for (( n = 0 ; n < ${#plugins[@]} ; ++n )) ; do
+ is_enabled ${plugins[${n}]} && \
+ plugins[${n}]="${plugins[${n}]} $(highlight '*')"
+ done
+ write_numbered_list "${plugins[@]}"
+ else
+ write_kv_list_entry "(none found)" ""
+ fi
+
+ return 0
+}
+
+### enable action ###
+
+describe_enable() {
+ echo "Enable specified Plugin(s)"
+}
+
+describe_enable_parameters() {
+ echo "<plugin>"
+}
+
+describe_enable_options() {
+ echo "<plugin> : Plugin name"
+}
+
+do_enable() {
+ local conffile="${ROOT}/etc/conf.d/vdr.plugins" plugins plugin
+
+ [[ -z ${1} ]] && die -q "You didn't specify any plugins to enable."
+
+ # make sure we have proper permissions
+ [[ -w ${conffile} ]] || \
+ die -q "You don't have permission to write to ${conffile}"
+
+ plugins=( $(find_plugins) )
+
+ for plugin in $@ ; do
+ local p=${plugin}
+
+ is_number ${p} && \
+ p=${plugins[$(( ${p} - 1 ))]}
+
+ [[ -z "${p}" ]] && \
+ die -q "Plugin \"${plugin}\" doesn't appear to be valid!"
+
+ plugin=${p}
+
+ # ignore any unrecognized options
+ [[ ${plugin} == --* ]] && continue
+
+ # does plugin exist
+ if ! plugin_exists "${plugin}"; then
+ write_error_msg "Plugin ${plugin} doesn't exist"
+ continue
+ fi
+
+ # already enabled?
+ if is_enabled "${plugin}"; then
+ write_error_msg "Plugin ${plugin} is already enabled"
+ continue
+ fi
+
+ # finally, add it to conffile
+ echo "${plugin}" >> "${conffile}"
+ done
+}
+
+### disable action ###
+
+describe_disable() {
+ echo "Disable specified plugin(s)"
+}
+
+describe_disable_parameters() {
+ echo "<plugin>"
+}
+
+describe_disable_options() {
+ echo "<plugin> : Plugin name"
+}
+
+
+do_disable() {
+ local conffile="${ROOT}/etc/conf.d/vdr.plugins" plugins plugin
+
+ [[ -z ${1} ]] && die -q "You didn't specify any plugins to disable"
+
+ [[ -w ${conffile} ]] || \
+ die -q "You don't have permission to write to ${conffile}"
+
+ plugins=( $(find_plugins) )
+
+ for plugin in $@ ; do
+ local p=${plugin}
+
+ is_number ${p} && \
+ p=${plugins[$(( ${p} - 1 ))]}
+
+ [[ -z "${p}" ]] && \
+ die -q "Plugin \"${plugin}\" doesn't appear to be valid!"
+
+ plugin=${p}
+
+ # ignore any unrecognized options
+ [[ ${plugin} == --* ]] && continue
+
+ # is in installed?
+ if ! is_enabled "${plugin}"; then
+ write_error_msg "${plugin} is not enabled"
+ continue
+ fi
+
+ sed -e "/^${plugin}\$/d" -i "${conffile}"
+ done
+}
+
+# vim: set ft=eselect :