diff options
author | Palmer Dabbelt <palmer@dabbelt.com> | 2015-01-17 16:03:13 -0800 |
---|---|---|
committer | Palmer Dabbelt <palmer@dabbelt.com> | 2015-01-17 16:06:31 -0800 |
commit | 4576f9bbcedef66741fd98ede62ab96112302677 (patch) | |
tree | 4f435da0c770582b924b84012c4b405488c43059 /app-admin | |
parent | Name this repo "user/palmer" (diff) | |
download | palmer-4576f9bbcedef66741fd98ede62ab96112302677.tar.gz palmer-4576f9bbcedef66741fd98ede62ab96112302677.tar.bz2 palmer-4576f9bbcedef66741fd98ede62ab96112302677.zip |
Add scala-bin (and eselect-scala)
So Scala is kind of a mess, but this at least allows me to install a
binary version of it so I can build Chisel-related things.
Diffstat (limited to 'app-admin')
-rw-r--r-- | app-admin/eselect-scala/Manifest | 2 | ||||
-rw-r--r-- | app-admin/eselect-scala/eselect-scala-0.1.ebuild | 23 | ||||
-rw-r--r-- | app-admin/eselect-scala/files/scala.eselect | 107 |
3 files changed, 132 insertions, 0 deletions
diff --git a/app-admin/eselect-scala/Manifest b/app-admin/eselect-scala/Manifest new file mode 100644 index 0000000..dde120a --- /dev/null +++ b/app-admin/eselect-scala/Manifest @@ -0,0 +1,2 @@ +AUX scala.eselect 2115 SHA256 ccaaf2eca96af6780fbbbd229f670c3e01acf3d339a6f642c4197deac0dcbf86 SHA512 a614927c420ab615d2116185249a6dea6b0f598436093defbf0dfe1b6b7fe9c8b8f6fd550b2213d50e8ad07f15199377fc629c604e9b1b1eb20af5c6ada24e1d WHIRLPOOL 9ce4e09da2488d77f0fd0d55bb441e54f2347cde4472c49224263150f30e58bf515f3d2668210a533396a7c213482e577957d0013ac08c874d1242b1bae5f987 +EBUILD eselect-scala-0.1.ebuild 457 SHA256 43d9fb89c7570e1b58ea3fe2b86e0e713ab2313078dc6ba10b696a167d7374a1 SHA512 62e0de9b3406ee6016213c5e57e01e3b2610fcc948da3d9cc0f997477e38be5dd64a3aa10b21699f1453af2bce6c60d7a8c295fc2e2ac0f5711b4cc73bd2407b WHIRLPOOL 9b930eb99d272ff8954582ad78f8a0e452a6f73df2ddff4b1b00e5ffd9a800b93ad8c5ebd9baa2007ccbe5be38ba9a6a615a35b0775fce361fe106113a6f653f diff --git a/app-admin/eselect-scala/eselect-scala-0.1.ebuild b/app-admin/eselect-scala/eselect-scala-0.1.ebuild new file mode 100644 index 0000000..b4be479 --- /dev/null +++ b/app-admin/eselect-scala/eselect-scala-0.1.ebuild @@ -0,0 +1,23 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=3 + +DESCRIPTION="Manages Scala symlinks" +HOMEPAGE="http://whiter4bbit.info" +SRC_URI="" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64" +IUSE="" + +DEPEND=">=app-admin/eselect-1.0.10 + !<dev-lang/scala-2.8.1" +RDEPEND="${DEPEND}" + +src_install() { + insinto /usr/share/eselect/modules + doins "${FILESDIR}/scala.eselect" || die "doins failed" +} diff --git a/app-admin/eselect-scala/files/scala.eselect b/app-admin/eselect-scala/files/scala.eselect new file mode 100644 index 0000000..e9e5a88 --- /dev/null +++ b/app-admin/eselect-scala/files/scala.eselect @@ -0,0 +1,107 @@ +DESCRIPTION="Manage Scala targets" +MAINTAINER="wr4bbit@gmail.com" +VERSION="0" +SCALA_BIN="${ROOT}/usr/bin/scala" +BIN="${ROOT}/usr/bin" + +SCALA_BINARIES=(scala scalac scaladoc scalap fsc) + +describe_list() { + echo "List of installed scala versions" +} + +find_targets() { + for f in $(ls -r ${BIN}/scala-[0-9]*) ; do + echo ${f} + done +} + +do_list() { + local targets=( $(find_targets) ) + local i line + for (( i = 0; i < ${#targets[@]}; i++ )) ; do + line=$(basename "${targets[i]}") + if [[ ${targets[i]} = $(readlink ${SCALA_BIN}) ]] ; then + line=$(highlight_marker "${line}") + fi + targets[i]="${line}" + done + write_numbered_list "${targets[@]}" +} + +describe_show() { + echo "Show current target" +} + +do_show() { + if [ -e "${SCALA_BIN}" ] ; then + local p=$(readlink ${SCALA_BIN}) + write_kv_list_entry "$(basename ${p})" "" + else + write_kv_list_entry "(none)" "" + fi +} + +describe_set() { + echo "Set current target" +} + +describe_set_parameters() { + echo "<target>" +} + +describe_set_options() { + echo "target: scala target to set" +} + +remove_symlinks() { + local postfix=${1} + for b in ${SCALA_BINARIES[*]} + do + local bin_path="${BIN}/${b}" + [[ -e "${bin_path}" ]] && rm "${bin_path}" + done +} + +create_symlinks() { + local postfix=${1} + for b in ${SCALA_BINARIES[*]} + do + local link_path="${BIN}/${b}${postfix}" + local bin_path="${BIN}/${b}" + ln -s "${link_path}" "${bin_path}" + done +} + +check_postfix() { + local postfix=${1} + local target=${2} + for b in ${SCALA_BINARIES[*]} + do + local link_path="${BIN}/${b}${postfix}" + if [[ ! -e "${link_path}" ]]; then + write_error_msg "Invalid target ${target}" + exit + fi + done +} + +do_set() { + local target=${1} + + local postfix + if [[ ${target} =~ (\-([0-9\.]+)) ]]; then + postfix="${BASH_REMATCH[1]}" + else + write_error_msg "Incorrect target" + exit + fi + + check_postfix "${postfix}" "${target}" + + remove_symlinks "${postfix}" + create_symlinks "${postfix}" + + do_show +} +# vim: set ft=eselect : |