X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=zpm-log;h=8e53f6204060edffb64d0889cb2e62d61f35c993;hb=30aa9bfe1e9a0e682f7c942b8e68054551f14857;hp=f4fdab87ca64158a2ebfa6c82cdfae046ba37314;hpb=f32377900801d941f40231c544488e38b596e431;p=zpackage diff --git a/zpm-log b/zpm-log index f4fdab8..8e53f62 100755 --- a/zpm-log +++ b/zpm-log @@ -6,17 +6,19 @@ #-i insert, otherwise search op=search -action='log' +action= +json=0 pkgfile=${ZPMDB:-/var/lib/zpm/local.db} -while getopts f:t:a:T:i opt; do +while getopts f:t:a:T:ij opt; do case $opt in f) pkgfile="$OPTARG" ;; t) target="$OPTARG" ;; a) action="$OPTARG" ;; T) timestamp="$OPTARG" ;; i) op=insert ;; + j) json=1 ;; *) printf '%s unknown option %s\n' "$0" "$opt" ; exit 1 ;; esac done @@ -50,21 +52,28 @@ if [ $op = 'insert' ]; then fi +cols='ts,target,action,info' + if [ $op = 'search' ]; then + +if [ $json -eq 1 ]; then + cols="json_group_array(json_object('ts',ts,'target',target,'action',action,'info',info))" +fi + { - printf 'select ts,action,target,info from zpmlog where\n'; + printf ".separator ' '\n" + printf 'select %s from zpmlog where\n' "$cols"; if [ -n "$timestamp" ]; then printf "ts >= '%s' and " "$timestamp" fi if [ -n "$action" ]; then - printf "action = '%s' and " "$action" + printf "action like '%s' and " "$action" fi if [ -n "$target" ]; then - printf "target = '%s' and " "$target" + printf "target like '%s' and " "$target" fi - printf "true;\n" + printf "true order by ts;\n" } | zpm shell $pkgfile fi -