Make shell client work in OS X:

- use gnu env for `env -0`,
- use filesystem socket.
This commit is contained in:
Pierre Carru 2014-08-26 10:37:32 +01:00
parent 21b10ee7e1
commit c4aa72fc1f
1 changed files with 12 additions and 2 deletions

View File

@ -1,11 +1,21 @@
#!/bin/sh #!/bin/sh
test "${OSTYPE#darwin}" = "${OSTYPE}" && darwin=n || darwin=y
if test "$1" = "--socket" ; then if test "$1" = "--socket" ; then
shift shift
ADDRESS="$1" ADDRESS="$1"
shift shift
else else
ADDRESS="powerline-ipc-${UID:-`id -u`}" ADDRESS="powerline-ipc-${UID:-`id -u`}"
test "$darwin" = y && ADDRESS="/tmp/$ADDRESS"
fi
if test "$darwin" = y; then
ENV=genv
else
ENV=env
ADDRESS="abstract-client:$ADDRESS"
fi fi
# Warning: env -0 does not work in busybox. Consider switching to parsing # Warning: env -0 does not work in busybox. Consider switching to parsing
@ -16,8 +26,8 @@ fi
printf '%s\0' "$argv" printf '%s\0' "$argv"
done done
printf '%s\0' "$PWD" printf '%s\0' "$PWD"
env -0 $ENV -0
) | socat -lf/dev/null -t 10 - abstract-client:"$ADDRESS" ) | socat -lf/dev/null -t 10 - "$ADDRESS"
if test $? -ne 0 ; then if test $? -ne 0 ; then
powerline-render "$@" powerline-render "$@"