From bd204af875154cc4702debfd77b546cd11df48fc Mon Sep 17 00:00:00 2001 From: Geoffrey Thomas Date: Mon, 23 Aug 2010 05:59:41 -0400 Subject: [PATCH] gccrun: Run tiny programs from the command line. e.g., dr-wily:~ geofft$ gccrun 'printf("Hello world!\n");' Hello world! See http://geofft.mit.edu/blog/sipb/132 for a bit more info. Signed-off-by: Geoffrey Thomas --- programming/gccrun | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100755 programming/gccrun diff --git a/programming/gccrun b/programming/gccrun new file mode 100755 index 0000000..55e6b68 --- /dev/null +++ b/programming/gccrun @@ -0,0 +1,45 @@ +#!/bin/sh + +if [ "$#" = 0 ]; then + echo "usage: $0 [-w wrapper] " >&2 + exit 1 +fi + +if [ "$1" = -w ]; then + wrapper="$2" + shift 2 +fi + +f=$(mktemp -d -t gccrun.XXXXXXXX) || exit 1 +cat > "$f/command.c" << EOF +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int +main(int argc, char *argv[], char *envp[]) +{ + $@; + return 0; +} +EOF +if ! gcc -o "$f/command" "$f/command.c"; then + exit 1 +fi +if [ -n "$wrapper" ]; then + "$wrapper" "$f/command" +else + "$f/command" +fi +r=$? +rm -r "$f" +exit $r -- 2.45.0