dust: init at 0-91

This commit is contained in:
Herwig Hochleitner 2016-02-28 16:50:59 +01:00
parent 1c380842d1
commit de5fa8339f
3 changed files with 150 additions and 0 deletions

@ -0,0 +1,27 @@
{ stdenv, pixie, fetchgit }:
stdenv.mkDerivation {
name = "dust-0-91";
src = fetchgit {
url = "https://github.com/pixie-lang/dust.git";
rev = "efe469661e749a71e86858fd006f61464810575a";
sha256 = "0krh7ynald3gqv9f17a4kfx7sx8i31l6j1fhd5k8b6m8cid7f9c1";
};
buildInputs = [ pixie ];
patches = [ ./make-paths-configurable.patch ];
configurePhase = ''
pixiePath="${pixie}/bin/pxi" \
basePath="$out/share/dust" \
substituteAll dust.in dust
chmod +x dust
'';
# FIXME: AOT for dust
# buildPhase = ''
# find . -name "*.pxi" -exec pixie-vm -c {} \;
# '';
installPhase = ''
mkdir -p $out/bin $out/share/dust
cp -a src/ run.pxi $out/share/dust
mv dust $out/bin/dust
'';
}

@ -0,0 +1,122 @@
From 0cbb82e606610d36e52c70d888995fbbf9b0d7c8 Mon Sep 17 00:00:00 2001
From: Herwig Hochleitner <herwig@bendlas.net>
Date: Sun, 28 Feb 2016 16:34:14 +0100
Subject: [PATCH] make paths configurable
---
dust | 52 ----------------------------------------------------
dust.in | 43 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 43 insertions(+), 52 deletions(-)
delete mode 100755 dust
create mode 100755 dust.in
diff --git a/dust b/dust
deleted file mode 100755
index ffced9b..0000000
--- a/dust
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env bash
-
-base_path=$0
-if [ -L "$base_path" ]; then
- base_path=`readlink $base_path`
-fi
-base_path=`dirname $base_path`
-
-pixie_path=`which pixie-vm`
-if [ -z "$pixie_path" ]; then
- echo "Error: 'pixie-vm' must be on your PATH"
- exit 1
-fi
-
-function set_load_path() {
- load_path=""
- if ([ -f "project.edn" ] || [ -f "project.pxi" ]) && [ -f ".load-path" ]; then
- load_path="`cat .load-path`"
- fi
-}
-
-if [ ! -f "project.edn" ] && [ -f "project.pxi" ]; then
- echo "Warning: 'project.pxi' is deprecated, please use 'project.edn'."
- echo "To start you can run the following command:"
- echo " pixie-vm -l $base_path/src -e '(require dust.project :as p) (p/load-project!) (prn (dissoc @p/*project* :path))'"
- echo
-fi
-
-set_load_path
-run_dust="$pixie_path -l $base_path/src $load_path $base_path/run.pxi"
-
-case $1 in
- ""|"repl")
- rlwrap_cmd=""
- if [ -n "`which rlwrap`" ]; then
- rlwrap_cmd="rlwrap -aignored -n"
- fi
- $rlwrap_cmd $pixie_path $load_path
- ;;
- "run")
- shift
- file=$1
- shift
- $pixie_path $load_path $file $@
- ;;
- -h|--help)
- $run_dust help
- ;;
- *)
- $run_dust $@
- ;;
-esac
diff --git a/dust.in b/dust.in
new file mode 100755
index 0000000..44a7fbd
--- /dev/null
+++ b/dust.in
@@ -0,0 +1,43 @@
+#!/usr/bin/env bash
+
+base_path=@basePath@
+pixie_path=@pixiePath@
+
+function set_load_path() {
+ load_path=""
+ if ([ -f "project.edn" ] || [ -f "project.pxi" ]) && [ -f ".load-path" ]; then
+ load_path="`cat .load-path`"
+ fi
+}
+
+if [ ! -f "project.edn" ] && [ -f "project.pxi" ]; then
+ echo "Warning: 'project.pxi' is deprecated, please use 'project.edn'."
+ echo "To start you can run the following command:"
+ echo " pixie-vm -l $base_path/src -e '(require dust.project :as p) (p/load-project!) (prn (dissoc @p/*project* :path))'"
+ echo
+fi
+
+set_load_path
+run_dust="$pixie_path -l $base_path/src $load_path $base_path/run.pxi"
+
+case $1 in
+ ""|"repl")
+ rlwrap_cmd=""
+ if [ -n "`which rlwrap`" ]; then
+ rlwrap_cmd="rlwrap -aignored -n"
+ fi
+ $rlwrap_cmd $pixie_path $load_path
+ ;;
+ "run")
+ shift
+ file=$1
+ shift
+ $pixie_path $load_path $file $@
+ ;;
+ -h|--help)
+ $run_dust help
+ ;;
+ *)
+ $run_dust $@
+ ;;
+esac
--
2.7.1

@ -5508,6 +5508,7 @@ let
};
pixie = callPackage ../development/interpreters/pixie { };
dust = callPackage ../development/interpreters/pixie/dust.nix { };
bundix = callPackage ../development/interpreters/ruby/bundix {
ruby = ruby_2_1_3;