summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@sbcglobal.net>2015-07-09 19:01:35 -0600
committerLuke Shumaker <lukeshu@sbcglobal.net>2015-07-09 19:01:35 -0600
commit99df5644235e2afd2e29fa895e037c910521fd61 (patch)
treee2a55ce74b0a2301375446646ecfcf1467eed97a
parent4fae29531c16df28685ca0530fbc0162b7882cff (diff)
wip
-rw-r--r--modules/files/commit.sh59
-rw-r--r--modules/tags/Module.mk1
-rw-r--r--modules/tree/Module.mk1
-rw-r--r--wrapper/inner.sh.m412
-rw-r--r--wrapper/runcmd.mk2
5 files changed, 44 insertions, 31 deletions
diff --git a/modules/files/commit.sh b/modules/files/commit.sh
index 0bb8233..70573a6 100644
--- a/modules/files/commit.sh
+++ b/modules/files/commit.sh
@@ -1,27 +1,38 @@
-#!/bin/sh
-name='commit'
-ver=0.9
-# Copyright (C) 2009-2010 Luke Shumaker
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; see the file COPYING.
-# If not, see <http://www.gnu.org/licenses>.
+#!/usr/bin/env bash
+# rvs inner.sh - The main RVS program
+# Copyright (C) 2009-2010, 2015 Luke Shumaker
+#
+# This file is part of rvs.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
-. "$LIBDIR/@ID@/stdio"
+. "$(dirname "$0")/_stdio.sh"
-usage="[FILE]"
-file=${1-.} # take arg1 as the file, default to the current directory
-
-type=`"$RVS" file-gettype "$file"`
-"$RVS" "commit.$type" "$file"
+if [[ $# -lt 1 ]]; then
+ set -- .
+fi
+for file in "$@"; do
+ local type
+ if test -L "$file"; then
+ type=l
+ elif test -f "$file"; then
+ type=f
+ elif test -d "$file"; then
+ type=d
+ else
+ error 'Unsupported file type: %s' "$file"
+ fi
+ "$RVS" "commit.$type" "$file"
+done
diff --git a/modules/tags/Module.mk b/modules/tags/Module.mk
index 1ea1144..2a05718 100644
--- a/modules/tags/Module.mk
+++ b/modules/tags/Module.mk
@@ -1 +1,2 @@
commit/tags : commit/files
+commit/tags : commit/tree
diff --git a/modules/tree/Module.mk b/modules/tree/Module.mk
index f31b1f5..6b0076e 100644
--- a/modules/tree/Module.mk
+++ b/modules/tree/Module.mk
@@ -1,2 +1 @@
-commit/tags : commit/tree
commit/tree : commit/files
diff --git a/wrapper/inner.sh.m4 b/wrapper/inner.sh.m4
index 047b8f1..bd7a643 100644
--- a/wrapper/inner.sh.m4
+++ b/wrapper/inner.sh.m4
@@ -78,9 +78,10 @@ _runcmd() {
fi
files=("${files[@]#"${exec_path/modules/}"}")
- local output_dir
- trap '[ -z "${output_dir:-}" ] || rm -rf -- "$TMPDIR"' EXIT
- output_dir="$(mktemp -dt "${PACKAGE}.XXXXXXXXXX")"
+ local tmpdir
+ trap '[ -z "${tmpdir:-}" ] || rm -rf -- "$tmpdir"' EXIT
+ tmpdir="$(mktemp -dt "${PACKAGE}.XXXXXXXXXX")"
+ mkdir -- "$tmpdir/output"
local repo
repo="$(_repo)"
@@ -91,10 +92,11 @@ _runcmd() {
make -j1 \
-f "$exec_path/runcmd.mk" \
- -C "$output_dir" \
+ -C "$tmpdir/output" \
+ CWD="$cwd" \
ARGS="$args_str" \
EXEC_PATH="$exec_path" \
- CWD="$cwd" \
+ TMPDIR="$tmpdir" \
-- "${files[@]}"
exit $?
}
diff --git a/wrapper/runcmd.mk b/wrapper/runcmd.mk
index 7cadb43..7340d11 100644
--- a/wrapper/runcmd.mk
+++ b/wrapper/runcmd.mk
@@ -10,6 +10,6 @@ SHELL = bash -o pipefail
export OUTPUT_DIR := $(realpath .)
% : $(EXEC_PATH)/modules/%
- cd $(CWD) && '$<' $(ARGS) | tee -- '$@'
+ cd $(CWD) && '$<' $(ARGS) | tee -- '$@' | sed 's,^,$@:,' >/dev/tty
include $(wildcard $(EXEC_PATH)/modules/*.mk)