[go: up one dir, main page]

File: lbdbq.sh.in

package info (click to toggle)
lbdb 0.48.1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 952 kB
  • sloc: sh: 5,379; ansic: 1,585; perl: 269; lisp: 265; makefile: 214; objc: 44
file content (116 lines) | stat: -rw-r--r-- 2,922 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#! @SH@
#
#     Copyright (C) 1998-2000  Thomas Roessler <roessler@guug.de>
#                   1998-2018  Roland Rosenfeld <roland@spinnaker.de>
# 
#     This program is free software; you can redistribute it and/or modify
#     it under the terms of the GNU General Public License as published by
#     the Free Software Foundation; either version 2 of the License, or
#     (at your option) any later version.
# 
#     This program is distributed in the hope that it will be useful,
#     but WITHOUT ANY WARRANTY; without even the implied warranty of
#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#     GNU General Public License for more details.
# 
#     You should have received a copy of the GNU General Public License
#     along with this program; if not, write to the Free Software Foundation,
#     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,, USA.

LBDB_VERSION=@LBDB_VERSION@

prefix=@prefix@
libdir=@libdir@
sysconfdir=@sysconfdir@

METHODS="@MODULES@"
MODULES_PATH=@libdir@
TAC=@TAC@

case "$1" in
    -v|--version)
	echo "lbdbq version $LBDB_VERSION"
	exit 0
	;;
    -h|--help)
	PROG=$(basename "$0")
	echo "Usage: $PROG 'something'   search addresses matching 'something'"
	echo "       $PROG -v|--version  print version of lbdbq"
	echo "       $PROG -h|--help     this short help"
	exit 0
	;;
esac

libdir=${USE_LOCAL_LIB:-$libdir}
. "$libdir"/lbdb_lib

tmpdir=${TMPDIR-/tmp}/query.$(hostname).$$
mkdir "$tmpdir" || exit 1
trap "rm -rf $tmpdir ; trap '' 0; exit 1" HUP INT QUIT TERM
trap "rm -rf $tmpdir ; trap '' 0" EXIT
collection=$tmpdir/coll

for conffile in $sysconfdir/lbdb.rc $HOME/.lbdbrc \
	$HOME/.lbdb/lbdbrc $HOME/.lbdb/rc ; do
	
  if test -f "$conffile" ; then
    . "$conffile"
  fi

done

METHODS=${LBDB_OVERRIDE_METHODS:-$METHODS}
MODULES_PATH=${USE_LOCAL_LIB:-$MODULES_PATH}
for method in $METHODS ; do
  for CURRENT_MODULE_DIR in $MODULES_PATH ; do
    if test -f "$CURRENT_MODULE_DIR/$method" ; then
      . "$CURRENT_MODULE_DIR/$method"
      break
    fi
  done
done

for method in $METHODS ; do
  eval ${method}_query \""$@"\" >> "$collection" || true
done

case "${KEEP_DUPES:-}" in
    true|yes)
	MUNGE=cat
	MUNGE_KEEPORDER=cat
	;;
    *)
	MUNGE=$libdir/munge
	MUNGE_KEEPORDER="$libdir/munge keeporder=1"
	;;
esac

case "${SORT_OUTPUT:-}" in
    false|no)
	$MUNGE_KEEPORDER "$collection" | $TAC > "$collection.uniq"
	;;
    *name)
	$MUNGE "$collection" | sort -f -k2 > "$collection.uniq"
	;;
    reverse_comment)
        $MUNGE "$collection" | sort -f -k3 -t'	' -r > "$collection.uniq"
	;;
    comment)
        $MUNGE "$collection" | sort -f -k3 -t'	' > "$collection.uniq"
	;;
    *)
	$MUNGE "$collection" | sort -f > "$collection.uniq"
	;;
esac

lines=$(wc -l < "$collection.uniq" | sed -E 's/[[:blank:]]+//')

if [ "$lines" -eq 0 ]
then
    echo "lbdbq: no matches"
    exit 1
else
    echo "lbdbq: $lines matches"
fi

cat "$collection.uniq"