#include "git-compat-util.h"
#include "run-command.h"
#include "strbuf.h"

int main(int argc, char **argv)
{
	const char *trash_directory = getenv("TRASH_DIRECTORY");
	struct strbuf buf = STRBUF_INIT;
	FILE *f;
	int i;
	const char *child_argv[] = { NULL, NULL };

	/* First, print all parameters into $TRASH_DIRECTORY/ssh-output */
	if (!trash_directory)
		die("Need a TRASH_DIRECTORY!");
	strbuf_addf(&buf, "%s/ssh-output", trash_directory);
	f = fopen(buf.buf, "w");
	if (!f)
		die("Could not write to %s", buf.buf);
	for (i = 0; i < argc; i++)
		fprintf(f, "%s%s", i > 0 ? " " : "", i > 0 ? argv[i] : "ssh:");
	fprintf(f, "\n");
	fclose(f);

	/* Now, evaluate the *last* parameter */
	if (argc < 2)
		return 0;
	child_argv[0] = argv[argc - 1];
	return run_command_v_opt(child_argv, RUN_USING_SHELL);
}
