Added compile-command to pstack.c.
[utils.git] / rsc
diff --git a/rsc b/rsc
index a84668d..faa3264 100755 (executable)
--- a/rsc
+++ b/rsc
@@ -1,41 +1,18 @@
-#!/usr/bin/perl
+#!/bin/bash
 
-if(@ARGV < 1) {
-    print STDERR "usage: rsc HOST CMD ARG...\n";
-    exit 1;
-}
+set -e
 
-if($ARGV[0] eq "-s") {
-    $c = "";
-    while(<STDIN>) {
-       chomp;
-       s/\\(.)/$1/g;
-       $c .= $_;
-       if(/\\$/) {
-           $c =~ s/\\$/\n/;
-           next;
-       }
-       push @a, $c;
-       $c = "";
-    }
-    for (@a) {
-       exec @a;
-       print STDERR "$a[0]: $!\n";
-       exit 1;
-    }
-} else {
-    $host = shift @ARGV;
-    $pid = open SSH, "|-";
-    if($pid == 0) {
-       exec "ssh", "$host", "rsc", "-s";
-       die "$!";
-    }
-    for (@ARGV) {
-       s/([\\\n])/\\$1/g;
-       print SSH "$_\n";
-    }
-    close SSH;
-    waitpid $pid, 0;
-}
+if [ $# -lt 2 ]; then
+    echo "usage: rsc HOST COMMAND ARGS..." >&2
+    exit 1
+fi
 
+host="$1"; shift
+cmd="$1"; shift
 
+(
+    echo -n "$cmd"; echo -ne '\0'
+    for arg in "$@"; do
+       echo -n "$arg"; echo -ne '\0'
+    done
+) | exec ssh "$host" "xargs -0x sh -c 'exec \$0 \"\$@\"'"