summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPalmer Dabbelt <palmer@dabbelt.com>2015-01-17 16:03:13 -0800
committerPalmer Dabbelt <palmer@dabbelt.com>2015-01-17 16:06:31 -0800
commit4576f9bbcedef66741fd98ede62ab96112302677 (patch)
tree4f435da0c770582b924b84012c4b405488c43059 /app-admin
parentName this repo "user/palmer" (diff)
downloadpalmer-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/Manifest2
-rw-r--r--app-admin/eselect-scala/eselect-scala-0.1.ebuild23
-rw-r--r--app-admin/eselect-scala/files/scala.eselect107
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 :