Skip to content

Commit a1ef1c5

Browse files
author
emmett1
committed
move pkgquery function back to scratch
1 parent b72816f commit a1ef1c5

2 files changed

Lines changed: 203 additions & 342 deletions

File tree

pkgquery

Lines changed: 2 additions & 338 deletions
Original file line numberDiff line numberDiff line change
@@ -18,342 +18,6 @@
1818
# along with this program. If not, see <https://www.gnu.org/licenses/>.
1919
#
2020

21-
msg() {
22-
echo "==> $1"
23-
}
21+
echo "*** ${0##*/} is deprecated, please use 'scratch' instead ***"
2422

25-
msgerr() {
26-
msg "ERROR: $*"
27-
}
28-
29-
msgwarn() {
30-
msg "WARNING: $*"
31-
}
32-
33-
msginst() {
34-
echo "[i] $1"
35-
}
36-
37-
msgmiss() {
38-
echo "[m] $1"
39-
}
40-
41-
msgnoinst() {
42-
echo "[-] $1"
43-
}
44-
45-
needarg() {
46-
[ "$*" ] || {
47-
msgerr "This operation required an arguments!"
48-
exit 1
49-
}
50-
}
51-
52-
isinstalled() {
53-
if [ -s "$INDEX_DIR/$1/.pkginfo" ] && [ "$(grep $1 $INDEX_DIR/$1/.pkginfo)" ]; then
54-
return 0
55-
else
56-
return 1
57-
fi
58-
}
59-
60-
allinstalled() {
61-
grep ^name "$INDEX_DIR"/*/.pkginfo | awk '{print $3}'
62-
}
63-
64-
installed_pkg_info() {
65-
if isinstalled $1; then
66-
grep ^$2 "$INDEX_DIR/$1/.pkginfo" | cut -d " " -f3-
67-
fi
68-
}
69-
70-
deps_alias() {
71-
[ -f $ALIAS_FILE ] || {
72-
echo $@
73-
return
74-
}
75-
while [ "$1" ]; do
76-
getalias=$(grep -w ^$1 $ALIAS_FILE | awk '{print $2}')
77-
echo ${getalias:-$1}
78-
shift
79-
done
80-
unset getalias
81-
}
82-
83-
getdepends() {
84-
ppath=$(getportpath $1) || return 0
85-
deps=$(grep "^# depends[[:blank:]]*:" $ppath/$BUILD_SCRIPT \
86-
| sed 's/^# depends[[:blank:]]*:[[:blank:]]*//' \
87-
| tr ' ' '\n' \
88-
| awk '!a[$0]++' \
89-
| sed 's/,//')
90-
deps_alias $deps
91-
}
92-
93-
getportpath() {
94-
for repo in $REPO; do
95-
if [ -f $repo/$1/$BUILD_SCRIPT ]; then
96-
dirname $repo/$1/$BUILD_SCRIPT
97-
return 0
98-
fi
99-
done
100-
return 1
101-
}
102-
103-
pkg_dependent() {
104-
needarg $@
105-
if [ "$(getportpath $1)" ]; then
106-
grep -R "# depends[[:blank:]]*:" $REPO \
107-
| sed "s,:# depends[[:blank:]]*:[[:blank:]]*,#|,;s, ,|,g;s,$,|,g" \
108-
| grep "|$1|" \
109-
| awk -F "#" '{print $1}' \
110-
| rev \
111-
| awk -F / '{print $2}' \
112-
| rev
113-
else
114-
msgerr "Port '$1' not exist."
115-
return 1
116-
fi
117-
}
118-
119-
pkg_orphan() {
120-
tmpallpkg="/tmp/.pkgquery_allpkg.$$"
121-
tmpalldep="/tmp/.pkgquery_alldep.$$"
122-
for pkg in $(allinstalled); do
123-
echo $pkg >> $tmpallpkg
124-
dep="$dep $(getdepends $pkg)"
125-
done
126-
echo $dep | tr ' ' '\n' | sort | uniq > "$tmpalldep"
127-
grep -xvF -f "$tmpalldep" "$tmpallpkg"
128-
rm "$tmpalldep" "$tmpallpkg"
129-
}
130-
131-
pkg_dup() {
132-
dup=$(find $REPO -type d -print | grep -Exv "($(echo $REPO | tr ' ' '|'))" | \
133-
rev | cut -d '/' -f1 | rev | sort | uniq -d)
134-
135-
if [ "$dup" ]; then
136-
for dp in $dup; do
137-
for repo in $REPO; do
138-
[ -d $repo/$dp ] && echo "$repo/$dp"
139-
done
140-
done
141-
else
142-
msg "No duplicate ports found."
143-
fi
144-
}
145-
146-
pkg_foreign() {
147-
for pkg in $(allinstalled); do
148-
if ! getportpath $pkg >/dev/null; then
149-
iname=$(installed_pkg_info $pkg name)
150-
iversion=$(installed_pkg_info $pkg version)
151-
irelease=$(installed_pkg_info $pkg release)
152-
echo "$iname $iversion-$irelease"
153-
fi
154-
unset iname iversion irelease
155-
done
156-
}
157-
158-
pkg_search() {
159-
needarg $@
160-
arg=$*
161-
for repo in $REPO; do
162-
out=$(grep -R "# description" $repo | grep $BUILD_SCRIPT | grep "$arg" | awk -F : '{print $1}' | sort)
163-
[ "$out" ] || continue
164-
for line in $out; do
165-
repo=$(echo $line | rev | awk -F / '{print $3}' | rev)
166-
desc=$(grep "^# description[[:blank:]]*:" $line | sed 's/^# description[[:blank:]]*:[[:blank:]]*//')
167-
. $line
168-
echo "($repo) $name $version-$release: $desc"
169-
unset repo desc name version release build
170-
done
171-
unset out
172-
done
173-
}
174-
175-
pkg_locked() {
176-
for pkg in $(allinstalled); do
177-
[ -f "$INDEX_DIR/$pkg/.lock" ] && echo "$pkg"
178-
done
179-
}
180-
181-
pkg_installed() {
182-
for all in $(allinstalled); do
183-
printf "%s" "$all "
184-
grep -e ^version -e ^release $INDEX_DIR/$all/.pkginfo | awk '{print $3}' | tr '\n' '-' | sed 's:\-$::'
185-
echo
186-
done
187-
}
188-
189-
pkg_missingdep() {
190-
for pkg in $(allinstalled); do
191-
if getportpath "$pkg" >/dev/null; then
192-
depends=$(getdepends $pkg)
193-
fi
194-
if [ "$depends" ]; then
195-
for d in $depends; do
196-
if ! isinstalled $d; then
197-
if [ -z "$msd" ]; then
198-
msd="$d"
199-
else
200-
msd="$msd $d"
201-
fi
202-
fi
203-
done
204-
fi
205-
[ "$msd" ] && echo "$pkg: $msd"
206-
unset depends msd
207-
done
208-
}
209-
210-
pkg_info() {
211-
needarg $@
212-
ppath=$(getportpath $1) || return 1
213-
214-
. $ppath/$BUILD_SCRIPT
215-
desc=$(grep "^# description[[:blank:]]*:" $ppath/$BUILD_SCRIPT | sed 's/^# description[[:blank:]]*:[[:blank:]]*//')
216-
url=$(grep "^# homepage[[:blank:]]*:" $ppath/$BUILD_SCRIPT | sed 's/^# homepage[[:blank:]]*:[[:blank:]]*//')
217-
maint=$(grep "^# maintainer[[:blank:]]*:" $ppath/$BUILD_SCRIPT | sed 's/^# maintainer[[:blank:]]*:[[:blank:]]*//')
218-
deps=$(getdepends $1 | tr '\n' ' ')
219-
220-
echo "Name: $1"
221-
echo "Path: $ppath"
222-
echo "Version: $version"
223-
echo "Release: $release"
224-
echo "Description: $desc"
225-
echo "Homepage: $url"
226-
echo "Maintainer: $maint"
227-
echo "Dependencies: $deps"
228-
}
229-
230-
pkg_depends() {
231-
needarg $@
232-
if getportpath "$1" >/dev/null; then
233-
depends=$(getdepends $1)
234-
else
235-
msgerr "Port '$1' not exist."
236-
return 1
237-
fi
238-
239-
for dep in $depends; do
240-
if isinstalled $dep; then
241-
msginst "$dep"
242-
elif getportpath $dep >/dev/null; then
243-
msgnoinst "$dep"
244-
else
245-
msgmiss "$dep"
246-
fi
247-
done
248-
}
249-
250-
pkg_path() {
251-
needarg $@
252-
if PPATH=$(getportpath "$1"); then
253-
echo "$PPATH"
254-
else
255-
msgerr "Port '$1' not exist."
256-
return 1
257-
fi
258-
}
259-
260-
pkg_provide() {
261-
needarg $@
262-
arg=$(echo $1 | sed "s/^\///")
263-
grep -R "$arg" $INDEX_DIR/*/.files \
264-
| sed "s:$INDEX_DIR/::" \
265-
| sed "s:/.files::" \
266-
| tr : " " \
267-
| column -t
268-
}
269-
270-
pkg_readme() {
271-
needarg $@
272-
if PPATH=$(getportpath "$1"); then
273-
if [ -f "$PPATH/readme" ]; then
274-
cat "$PPATH/readme"
275-
else
276-
msgerr "Port '$1' does not have readme."
277-
fi
278-
else
279-
msgerr "Port '$1' not exist."
280-
exit 1
281-
fi
282-
}
283-
284-
pkg_files() {
285-
needarg $@
286-
if isinstalled $1; then
287-
cat "$INDEX_DIR/$1/.files"
288-
else
289-
msg "Package '$1' not installed."
290-
fi
291-
}
292-
293-
pkg_cat() {
294-
needarg $@
295-
if PPATH=$(getportpath "$1"); then
296-
cat "$PPATH/$BUILD_SCRIPT"
297-
else
298-
msgerr "Port '$1' not exist."
299-
return 1
300-
fi
301-
}
302-
303-
pkg_help() {
304-
cat << EOF
305-
Usage:
306-
$(basename $0) <options> [<arg>]
307-
308-
Options:
309-
search <pattern> find ports in repo
310-
cat <port> print spkgbuild
311-
depends <port> print dependencies
312-
dependent <port> print dependent
313-
path <port> print path in repo
314-
provide <files> print port's provided files
315-
readme <port> print readme file, if exist
316-
files <port> print files installed
317-
info <port> print information
318-
dup print duplicate ports in repo
319-
installed print all installed ports
320-
locked print loacked ports
321-
missingdep print missing dependencies
322-
orphan print orphan installed ports
323-
foreign print foreign ports
324-
help print this help msg
325-
326-
EOF
327-
}
328-
329-
print_runhelp_msg() {
330-
echo "Run '$(basename $0) help' to see available options."
331-
exit 2
332-
}
333-
334-
BUILD_SCRIPT="spkgbuild"
335-
INDEX_DIR="/var/lib/scratchpkg/index"
336-
REPO_FILE="/etc/scratchpkg.repo"
337-
ALIAS_FILE="/etc/scratchpkg.alias"
338-
339-
if [ -f "$REPO_FILE" ]; then
340-
for repodir in $(grep -Ev '^(#|$)' "$REPO_FILE" | awk '{print $1}'); do
341-
REPO="$REPO $repodir"
342-
done
343-
fi
344-
345-
opts=$1
346-
347-
if [ -z "$opts" ]; then
348-
print_runhelp_msg
349-
fi
350-
351-
shift
352-
353-
if [ $(command -v pkg_$opts) ]; then
354-
pkg_$opts "$@"
355-
else
356-
print_runhelp_msg
357-
fi
358-
359-
exit $?
23+
exit 0

0 commit comments

Comments
 (0)