Skip to content

Instantly share code, notes, and snippets.

@isseium
Forked from hirose31/README.md
Created August 15, 2013 00:02
Show Gist options
  • Save isseium/6237048 to your computer and use it in GitHub Desktop.
Save isseium/6237048 to your computer and use it in GitHub Desktop.

OK

こんな感じに、

  • trivial warning が出力されない
  • 全部 ok

になればOKです。

$ ./test.sh source_me-ok1.sh
PID=22954
source=source_me-ok1.sh
--
PID=22956
critical error
ok 1 - ORENO_HOME
ok 2 - PATH
ok 3 - LOADED_ORENO

NG

trivial warning が出力されてるのでダメ。

/test.sh source_me.sh
PID=23102
source=source_me.sh
--
PID=23104
trivial warning
critical error
ok 1 - ORENO_HOME
ok 2 - PATH
ok 3 - LOADED_ORENO

not okがあるのでダメ。

$ ./test.sh source_me-ng1.sh
PID=23195
source=source_me-ng1.sh
--
PID=23197
critical error
not ok 1 - ORENO_HOME
not ok 2 - PATH
not ok 3 - LOADED_ORENO
$ ./test.sh source_me-ng2.sh
PID=23272
source=source_me-ng2.sh
--
PID=23274
critical error
not ok 1 - ORENO_HOME
not ok 2 - PATH
ok 3 - LOADED_ORENO
# -*- mode: sh; -*-
# このファイルはいじれないこととします
ORENO_HOME="/oreno"; export ORENO_HOME
PATH=$PATH:$ORENO_HOME/bin
# 無視してもいい警告
echo "trivial warning" >&2
# やばいエラー!
echo "critical error" >&2
# -*- mode: sh; -*-
case $PATH in
*/oreno/bin*)
: # do nothing
;;
*)
. orenorc
LOADED_ORENO=1; export LOADED_ORENO
;;
esac 2>&1 | grep -v trivial
# -*- mode: sh; -*-
case $PATH in
*/oreno/bin*)
: # do nothing
;;
*)
. orenorc 2>&1 | grep -v trivial
LOADED_ORENO=1; export LOADED_ORENO
;;
esac
# -*- mode: sh; -*-
case $PATH in
*/oreno/bin*)
: # do nothing
;;
*)
. orenorc
LOADED_ORENO=1; export LOADED_ORENO
;;
esac
#!/bin/sh
source_me=${1:-source_me.sh}
echo "PID=$$"
echo "source=$source_me"
echo "-- "
{
cat <<'EOT'
echo "PID=$$"
PATH=/bin:/usr/bin
EOT
echo ". $source_me"
cat <<'EOF'
[ "$ORENO_HOME" != "/oreno" ] && echo -n "not "
echo "ok 1 - ORENO_HOME"
case $PATH in
*/oreno/bin*):;;
*)echo -n "not ";;
esac
echo "ok 2 - PATH"
[ "$LOADED_ORENO" != "1" ] && echo -n "not "
echo "ok 3 - LOADED_ORENO"
EOF
} | bash
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment