summaryrefslogtreecommitdiff
path: root/app-eselect/eselect-lightdm
diff options
context:
space:
mode:
Diffstat (limited to 'app-eselect/eselect-lightdm')
-rw-r--r--app-eselect/eselect-lightdm/Manifest2
-rw-r--r--app-eselect/eselect-lightdm/eselect-lightdm-0.2.ebuild25
-rw-r--r--app-eselect/eselect-lightdm/files/lightdm-0.2.eselect176
3 files changed, 203 insertions, 0 deletions
diff --git a/app-eselect/eselect-lightdm/Manifest b/app-eselect/eselect-lightdm/Manifest
new file mode 100644
index 00000000..28551431
--- /dev/null
+++ b/app-eselect/eselect-lightdm/Manifest
@@ -0,0 +1,2 @@
+AUX lightdm-0.2.eselect 4393 SHA256 3953380345fcb011f6f6786a1b3800f0e06ff05f7b3abd93eb734a71980bdd25 SHA512 1908ad4f363d2e7cc74ead0d52a90bc87f4752d7140b0e1098935f8f4446cc260ed73b629c895dda3afa3449718077ed70253a9becb60820d94cc2e278aeacc9 WHIRLPOOL be3248dee97a416ad84db3f080673edb7bfcffe08b4d24f9f97307a917bfb4f8cd3c132f5a59cf971ca8c00a1f9379caf328f93f9379643925288f7150283349
+EBUILD eselect-lightdm-0.2.ebuild 497 SHA256 46b5b60218693e53db3a98dcfcebc1c13a44fec4cc2a7d7b7b8ef2e33f2fee5d SHA512 3f46dd3b7ac03d93d416696f03cbeb54cbaaacecec0fbeaff446d19e47175988dddd0c264d7015c38bf70d7808cdf1dd96a7aa643632b809bf957bac15f20a3f WHIRLPOOL e1e14d07473480e70673c4ea3a5b0ada4e93eda083f78e4bf9906724d0bc0cb335fa1d3a332250a3b36056542d1707db6f06e3cdb1568b33172fe05cf9968be9
diff --git a/app-eselect/eselect-lightdm/eselect-lightdm-0.2.ebuild b/app-eselect/eselect-lightdm/eselect-lightdm-0.2.ebuild
new file mode 100644
index 00000000..7e1ef10b
--- /dev/null
+++ b/app-eselect/eselect-lightdm/eselect-lightdm-0.2.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=4
+
+SRC_URI=""
+KEYWORDS="~amd64 ~arm ~x86"
+
+DESCRIPTION="Eselect module for making easy to switch between LightDM greeters"
+HOMEPAGE="http://www.sabayon.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+S="${WORKDIR}"
+
+RDEPEND="app-admin/eselect"
+DEPEND="${RDEPEND}"
+
+src_install() {
+ insinto /usr/share/eselect/modules
+ newins "${FILESDIR}/lightdm-${PV}.eselect" lightdm.eselect
+}
diff --git a/app-eselect/eselect-lightdm/files/lightdm-0.2.eselect b/app-eselect/eselect-lightdm/files/lightdm-0.2.eselect
new file mode 100644
index 00000000..00cf7e1d
--- /dev/null
+++ b/app-eselect/eselect-lightdm/files/lightdm-0.2.eselect
@@ -0,0 +1,176 @@
+# -*-eselect-*- vim: ft=eselect
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2 or later
+# $Id: $
+
+DESCRIPTION="Switch between LightDM greeters"
+MAINTAINER="lxnay@gentoo.org"
+VERSION="0.1"
+
+# Module variables
+GREETERS_DIR="${EROOT}/usr/share/xgreeters"
+GREETER_SYM="${GREETERS_DIR}/default.desktop"
+
+find_targets() {
+ local f fname
+ for f in "${GREETERS_DIR}/"*; do
+ [[ "${f}" == "${GREETER_SYM}" ]] && continue
+ # skip dirs
+ [[ -d "${f}" ]] && continue
+ # skip broken syms etc
+ [[ ! -e "${f}" ]] && continue
+ # skip non reg files
+ [[ ! -f "${f}" ]] && continue
+
+ fname=$(basename "${f}")
+ [[ "${fname}" == *.desktop ]] || continue
+
+ echo "${fname%%.desktop}"
+ done
+}
+
+remove_symlink() {
+ rm "${GREETER_SYM}"
+}
+
+set_symlink() {
+ local target="${1}"
+
+ if is_number "${target}"; then
+ local targets=( $(find_targets) )
+ target=${targets[target-1]}
+ fi
+
+ [[ -z "${target}" || ! -f "${GREETERS_DIR}/${target}.desktop" ]] \
+ && die -q "Target \"${target}\" doesn't appear to be valid!"
+
+ echo "Setting LightDM greeter to ${target}"
+ ln -sf "${target}.desktop" "${GREETER_SYM}" || die "Cannot create symlink"
+}
+
+### show action ###
+
+describe_show() {
+ echo "Show the current LightDM greeter"
+}
+
+describe_show_options() {
+ echo "--quiet : only print the actual symlink value"
+ echo "--silent : same as --quiet"
+}
+
+do_show() {
+ local quiet=""
+
+ while [[ $# -gt 0 ]]; do
+ case ${1##--} in
+ quiet|silent)
+ quiet="1"
+ ;;
+ esac
+ shift
+ done
+
+ [[ -z "${quiet}" ]] && write_list_start "Current greeter:"
+ if [[ -L "${GREETER_SYM}" ]] && [[ -e "${GREETER_SYM}" ]]; then
+ local greeter=$(canonicalise "${GREETER_SYM}")
+ local greeter_bn=$(basename "${greeter%.desktop}")
+ if [[ -n "${quiet}" ]]; then
+ echo "${greeter_bn}"
+ else
+ write_kv_list_entry "${greeter_bn}" ""
+ fi
+ else
+ if [[ -z "${quiet}" ]]; then
+ write_kv_list_entry "(unset)" ""
+ fi
+ fi
+}
+
+### list action ###
+
+describe_list() {
+ echo "List available LightDM greeters"
+}
+
+describe_list_options() {
+ echo "--quiet : only print the actual symlink value"
+ echo "--silent : same as --quiet"
+}
+
+do_list() {
+ local quiet
+
+ while [[ $# -gt 0 ]]; do
+ case ${1##--} in
+ quiet|silent)
+ quiet="1"
+ ;;
+ esac
+ shift
+ done
+
+ local i targets=( $(find_targets) )
+
+ [[ -z "${quiet}" ]] && write_list_start "Available LightDM greeters:"
+ for (( i = 0; i < ${#targets[@]}; i++ )); do
+ if [[ -z "${quiet}" ]]; then
+ # highlight the target where the symlink is pointing to
+ [[ ${targets[i]} = \
+ $(basename "$(canonicalise "${GREETER_SYM}")") ]] \
+ && targets[i]=$(highlight_marker "${targets[i]}")
+ else
+ echo "${targets[i]}"
+ fi
+ done
+ [[ -z "${quiet}" ]] && \
+ write_numbered_list -m "(none found)" "${targets[@]}"
+}
+
+### set action ###
+describe_set() {
+ echo "Set a new LightDM greeter"
+}
+
+describe_set_parameters() {
+ echo "<target>"
+}
+
+describe_set_options() {
+ echo "target : Target name or number (from 'list' action)"
+ echo "--use-old : use the old value if target is already set"
+}
+
+do_set() {
+ local use_old
+ local target="${1}"
+
+ while [[ $# -gt 0 ]]; do
+ case ${1##--} in
+ use-old)
+ use_old="1"
+ ;;
+ esac
+ shift
+ done
+
+ [[ -z "${target}" ]] && \
+ die -q "You didn't tell me what to set the symlink to"
+ [[ ${#} -gt 1 ]] && die -q "Too many parameters"
+
+ if [[ "${use_old}" = "1" ]]; then
+ old_target=$(do_show --quiet)
+ target="${old_target:-${target}}"
+ fi
+
+ if [[ -L "${GREETER_SYM}" ]]; then
+ # existing symlink
+ remove_symlink || die -q "Couldn't remove existing symlink"
+ set_symlink "${target}" || die -q "Couldn't set a new symlink"
+ elif [[ -e "${GREETER_SYM}" ]]; then
+ # we have something strange
+ die -q "${GREETER_SYM} exists but is not a symlink"
+ else
+ set_symlink "${target}" || die -q "Couldn't set a new symlink"
+ fi
+}