s4
changeset 163:87e679d3c993
Avoid using "tail -f"
author | HIROSE Yuuji <yuuji@gentei.org> |
---|---|
date | Tue, 19 Jan 2016 10:23:05 +0859 |
parents | 1ec02d6f9bf3 |
children | 0cc22764899e |
files | s4-funcs.sh |
diffstat | 1 files changed, 25 insertions(+), 27 deletions(-) [+] |
line diff
1.1 --- a/s4-funcs.sh Thu Jan 14 22:45:57 2016 +0859 1.2 +++ b/s4-funcs.sh Tue Jan 19 10:23:05 2016 +0859 1.3 @@ -293,22 +293,35 @@ 1.4 # ./args.rb -cmd ".timeout 3000" "$@" 1.5 sqlite3 -cmd 'PRAGMA foreign_keys=ON' -cmd ".timeout 3000" "$@" 1.6 } 1.7 -querycat() { 1.8 - echo .once $sqo > $sqi 1.9 - cat $sqo & 1.10 - cat > $sqi 1.11 +dbsetup() { 1.12 + [ -d $tmpdir ] || mkdir -m 1777 $tmpdir 1.13 + [ -d $dbdir ] || mkdir -m 1775 $dbdir 1.14 + sqi=$tmpdir/sqi.$$ 1.15 + sqo=$tmpdir/sqo.$$ 1.16 + mkfifo $sqi $sqo 1.17 + #tail -f $sqi | sq $db & # "tail -f" is too heavy. DO NOT USE!! 1.18 + sq $db < $sqi & 1.19 + sq3pid="`jobs -p` $!" 1.20 + exec 2>> $tmpdir/error.out 1.21 + exec 3>> $tmpdir/debug.out 1.22 + exec 5> $sqi # Turning $sqi access through fd5 for continuous open state 1.23 + rm $sqi 1.24 +} 1.25 +cleanup() { 1.26 + echo .quit >&5 1.27 + kill $sq3pid 1.28 + kill $sq3pid 1.29 + rm -f $sqo $sqi 1.30 + rm -rf $tmpfiles 1.31 } 1.32 query() { 1.33 - cat<<EOF > $sqi 1.34 + cat<<EOF >&5 1.35 .once $sqo 1.36 $@ 1.37 EOF 1.38 cat $sqo 1.39 } 1.40 1.41 -_m4() { 1.42 - 1.43 -} 1.44 ismember() { 1.45 # $1=user, $2=group 1.46 err ismem: "select user from grp_mem where gname=$(sqlquote $2) and user='$1';" 1.47 @@ -1014,29 +1027,14 @@ 1.48 } 1.49 1.50 # Do instant jobs here 1.51 +dbsetup 1.52 +trap cleanup INT HUP EXIT 1.53 +# trap cleanup INT HUP 1.54 1.55 -[ -d $tmpdir ] || mkdir -m 1777 $tmpdir 1.56 -[ -d $dbdir ] || mkdir -m 1775 $dbdir 1.57 -sqi=$tmpdir/sqi.$$ 1.58 -sqo=$tmpdir/sqo.$$ 1.59 -mkfifo $sqi $sqo 1.60 -tail -f $sqi | sq $db & 1.61 -sq3pid="`jobs -p` $!" 1.62 -exec 2>> $tmpdir/error.out 1.63 -exec 3>> $tmpdir/debug.out 1.64 -cleanup() { 1.65 - echo .quit > $sqi 1.66 - kill $sq3pid 1.67 - kill $sq3pid 1.68 - rm -f $sqo $sqi 1.69 - rm -rf $tmpfiles 1.70 -} 1.71 err() { 1.72 echo "$@" 1>&3 1.73 } 1.74 1.75 -trap cleanup INT HUP EXIT 1.76 -# trap cleanup INT HUP 1.77 cgiinit() { 1.78 session=`date +%F-$$` 1.79 tmpf=tmp/stream 1.80 @@ -1263,7 +1261,7 @@ 1.81 fi 1.82 par2table $formdir/grp.def 1.83 query "END TRANSACTION;" 1.84 - # Remove orphant 1.85 + # Remove orphan 1.86 : <<EOF 1.87 select a.id,b.val from (select * from blog where id in 1.88 (select id from blog_s where key='owner'