From 99df5644235e2afd2e29fa895e037c910521fd61 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Thu, 9 Jul 2015 19:01:35 -0600 Subject: wip --- modules/files/commit.sh | 59 +++++++++++++++++++++++++++++-------------------- modules/tags/Module.mk | 1 + modules/tree/Module.mk | 1 - wrapper/inner.sh.m4 | 12 +++++----- wrapper/runcmd.mk | 2 +- 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 . +#!/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 . -. "$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) -- cgit v1.1-4-g5e80