You are not logged in.
Pages: 1
I have used arch for a longish time, but I've never had the time to delve into all the weird and wonderful applications.
To me, arch is a tool and I use but a small fraction of what's out there.
Which is why I sometimes wonder if there truly are apps that I might find useful and I just have not been aware of them ...
At home I am restricted by a satellite broadband provider who limits me to 300 megs in 24 hours - eeek!
So - what I do is having my own repo mirror at work with nightly updates, then I carry those home on a portable usb-drive.
I have two scripts which will compare the repo with what's installed on my computer(s) and give me a listing of package name and description of what is available but not installed.
Others may find those two scripts handy, so I present them here - my own li'l way of paying back to the arch community.
archie_packages.sh (as you can see - I'm really only concerned about 'extra' - feel free to tailor to _your_ needs)
#!/bin/sh
say() { echo -en "$*" >&2; }
die() { say "$*\n"; cleanup; exit 1; }
# reformatter
home=`dirname $0`
reformatter=$home/archie_reformat.sh
test -f $reformatter || die "-- cannot find '$reformatter'"
# architecture
cpu=`uname -m`
# scratch-files & tidy-up
t1=/tmp/tf-1.$$
t2=/tmp/tf-2.$$
curd=`pwd`
cleanup() { rm -f $t1 $t2 >/dev/null 2>/dev/null; cd $curd; }
trap "{ cleanup; }" SIGHUP SIGINT SIGQUIT SIGTERM SIGKILL
# check what we are running here ...
test -f /etc/arch-release; then
distro=archlinux
repo=/usb/linux/$distro/packages/$cpu/extra
ftype=".pkg.tar.gz"
else die "-- you _must_ be running 'archlinux'!!"; fi
cd $repo || die "-- '$repo' - no such directory!"
# pick out all files from repo
if test $# -eq 0; then
files="`ls *$ftype 2>/dev/null | sort`"
else
files=""
while test $# -gt 0; do
files="$files `ls $1*$ftype 2>/dev/null`"
shift
done
files="`echo $files | tr ' ' '\n' | sort | uniq`"
fi
test "~$files" = "~" && die "-- no files in repo!"
# make packages out of files ...
packages=""
for f in $files; do
a=${f%$ftype}
test "$a" = "$f" && continue
b=${a%-$cpu}
test "$b" = "$a" && {
b=${a%-NOARCH}
test "$b" = "$a" && continue
}
packages="$packages $b"
done
packages="`echo $packages | tr ' ' '\n' | sort | uniq`"
echo $packages | tr ' ' '\n' >$t2
pacman -Q | tr ' ' '-' >$t1
todo="`diff $t1 $t2 | grep '^> ' | sed -e 's/^> //'`"
test "~$todo" = "~" && die "-- no uninstalled packages"
files=""
for p in $todo; do
f=$p-${cpu}${ftype}
if test -f $f; then
files="$files $f"
else
f=$p-NOARCH${ftype}
test -f $f && files="$files $f"
fi
done
test "~$files" = "~" && die "-- no files-from-packages"
pacman -Qip $files | sh $reformatter
Then the reformatter - archie_reformat.sh ....
#!/bin/sh
awk 'BEGIN { sot = 18 }{
if ($0 == "") { flag = 0; next }
if (substr($0,1,4) == "Name") {
flag = 0
printf "\n%s", substr($0,sot)
next
}
if (substr($0,1,7) == "Version") {
printf " %s\n", substr($0,sot)
next
}
if (substr($0,1,11) == "Description") {
flag = 1
printf "# %s\n", substr($0,sot)
next
}
if (flag) {
if ($0 == "" || substr($0,1,1) != " ") flag = 0
else printf "# %s\n", substr($0,sot)
}
}'
So there you are! They have served me well enough.
Obviously, these are only of use if you have your own repo mirror!
Offline
Nice work
Offline
Nice! Moving to Community Contributions
Have you Syued today?
Free music for free people! | Earthlings
"Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away." -- A. de Saint-Exupery
Offline
Pages: 1