From 95720106bb65c5d6013b0ecdd3be4a3b78509568 Mon Sep 17 00:00:00 2001
From: Andrew Fyfe <andrew@neptune-one.net>
Date: Wed, 11 Apr 2007 21:40:33 +0100
Subject: autotool scripts/pacman-optimize

	- move scripts/pacman-optimize -> scripts/pacman-optimize.in
	- add -V --version options to scripts/pacman-optimize.in
	- add autotool commands to generate scripts/pacman-optimize

Signed-off-by: Andrew Fyfe <andrew@neptune-one.net>
---
 configure.ac               |   1 +
 scripts/Makefile.am        |   2 +-
 scripts/pacman-optimize    | 145 -----------------------------------------
 scripts/pacman-optimize.in | 158 +++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 160 insertions(+), 146 deletions(-)
 delete mode 100755 scripts/pacman-optimize
 create mode 100755 scripts/pacman-optimize.in

diff --git a/configure.ac b/configure.ac
index b3bc443e..bc36ce16 100644
--- a/configure.ac
+++ b/configure.ac
@@ -221,6 +221,7 @@ scripts/abs
 scripts/gensync
 scripts/makepkg
 scripts/makeworld
+scripts/pacman-optimize
 doc/Makefile
 etc/Makefile
 etc/makepkg.conf
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 9d67270a..98621e60 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -17,7 +17,7 @@ EXTRA_DIST = abs.in \
 	     gensync.in \
 	     makepkg.in \
 	     makeworld.in \
-	     pacman-optimize \
+	     pacman-optimize.in \
 	     rankmirrors \
 	     repo-add \
 	     repo-remove \
diff --git a/scripts/pacman-optimize b/scripts/pacman-optimize
deleted file mode 100755
index ca170334..00000000
--- a/scripts/pacman-optimize
+++ /dev/null
@@ -1,145 +0,0 @@
-#!/bin/bash
-# 
-#   pacman-optimize
-#  
-#   Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
-#  
-#   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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 
-#   USA.
-#
-
-myver='3.0.0'
-
-error() {
-	if [ "$USECOLOR" = "YES" -o "$USECOLOR" = "yes" ]; then
-		echo -e "\033[1;31m:: ERROR:\033[1;0m \033[1;1m$@\033[1;0m" >&2
-	else
-		echo ":: ERROR: $@" >&2
-	fi
-}
-
-source /etc/rc.conf #for USECOLOR
-source /etc/rc.d/functions
-
-usage() {
-	echo "pacman-optimize $myver"
-	echo "usage: $0 [pacman_db_root]"
-	echo 
-	echo "pacman-optimize is a little hack that should improve the performance"
-	echo "of pacman when reading/writing to its filesystem-based database."
-	echo
-	echo "Because pacman uses many small files to keep track of packages,"
-	echo "there is a tendency for these files to become fragmented over time."
-	echo "This script attempts to relocate these small files into one"
-	echo "continuous location on your hard drive.  The result is that the hard"
-	echo "drive should be able to read them faster, since the hard drive head"
-	echo "does not have to move around the disk as much."
-	echo
-}
-
-die() {
-	error $@
-	exit 1
-}
-
-die_r() {
-	rm -f /tmp/pacman.lck
-	die $@
-}
-
-dbroot="/var/lib/pacman"
-
-if [ "$1" != "" ]; then
-	if [ "$1" = "-h" -o "$1" = "--help" ]; then
-		usage
-		exit 0
-	fi
-	dbroot="$1"
-fi
-
-# make sure pacman isn't running
-if [ -f /tmp/pacman.lck ]; then
-	die "Pacman lockfile was found.  Cannot run while pacman is running."
-fi
-
-if [ ! -d "$dbroot" ]; then
-	die "$dbroot does not exist or is not a directory"
-fi
-
-if [ ! -w "$dbroot" ]; then
-	die "You must have correct permissions to optimize the database"
-fi
-
-# do not let pacman run while we do this
-touch /tmp/pacman.lck
-
-# step 1: sum the old db
-stat_busy "Md5sum'ing the old database"
-find $dbroot -type f | sort | xargs md5sum > /tmp/pacsums.old
-stat_done
-
-# step 2: tar it up
-stat_busy "Tar'ing up $dbroot"
-cd $dbroot
-tar -czf /tmp/pacmanDB.tgz ./
-if [ $? -ne 0 ]; then
-	stat_fail
-	rm -f /tmp/pacmanDB.tgz /tmp/pacsums.old
-	die_r "tar'ing up $dbroot failed"
-fi
-stat_done
-
-# step 3: make and sum the new db
-stat_busy "Making and md5sum'ing the new db"
-mkdir $dbroot.new
-tar -zxpf /tmp/pacmanDB.tgz -C $dbroot.new/
-if [ $? -ne 0 ]; then
-       rm -f /tmp/pacmanDB.tgz /tmp/pacsums.old
-       rm -rf "$dbroot.new"
-       die_r "untar'ing $dbroot failed"
-fi
-find "$dbroot.new" -type f | sort | sed -e 's/pacman.new/pacman/g' |\
-		xargs md5sum > /tmp/pacsums.new
-stat_done
-
-# step 4: compare the sums
-stat_busy "Checking integrity"
-diff /tmp/pacsums.old /tmp/pacsums.new >/dev/null 2>&1
-if [ $? -ne 0 ]; then
-	# failed
-	stat_fail
-	# leave /tmp/pacsums.old and .new for checking to see what doesn't match up
-	rm -rf "$dbroot.new" /tmp/pacman.lck /tmp/pacmanDB.tgz
-	die_r "integrity check FAILED, reverting to old database"
-fi
-stat_done
-
-# step 5: remove the new temporary database and the old one
-#         and use the .tgz to replace the old one
-stat_busy "Putting the new database in place"
-rm -rf "$dbroot.new" "$dbroot"/*
-tar -zxpf /tmp/pacmanDB.tgz -C "$dbroot"/
-stat_done
-
-# remove the lock file, sum files, and .tgz of database
-rm -f /tmp/pacman.lck /tmp/pacsums.old /tmp/pacsums.new /tmp/pacmanDB.tgz
-
-echo
-echo "Finished.  Your pacman database has been optimized."
-echo
-
-exit 0
-
-# vim: set ts=2 sw=2 noet:
diff --git a/scripts/pacman-optimize.in b/scripts/pacman-optimize.in
new file mode 100755
index 00000000..2bfec40e
--- /dev/null
+++ b/scripts/pacman-optimize.in
@@ -0,0 +1,158 @@
+#!/bin/bash
+# 
+#   pacman-optimize
+#  
+#   Copyright (c) 2002-2007 by Judd Vinet <jvinet@zeroflux.org>
+#  
+#   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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 
+#   USA.
+#
+
+myver='@PACKAGE_VERSION@'
+
+error() {
+	if [ "$USECOLOR" = "YES" -o "$USECOLOR" = "yes" ]; then
+		echo -e "\033[1;31m:: ERROR:\033[1;0m \033[1;1m$@\033[1;0m" >&2
+	else
+		echo ":: ERROR: $@" >&2
+	fi
+}
+
+source /etc/rc.conf #for USECOLOR
+source /etc/rc.d/functions
+
+usage() {
+	echo "pacman-optimize $myver"
+	echo "usage: $0 [pacman_db_root]"
+	echo 
+	echo "pacman-optimize is a little hack that should improve the performance"
+	echo "of pacman when reading/writing to its filesystem-based database."
+	echo
+	echo "Because pacman uses many small files to keep track of packages,"
+	echo "there is a tendency for these files to become fragmented over time."
+	echo "This script attempts to relocate these small files into one"
+	echo "continuous location on your hard drive.  The result is that the hard"
+	echo "drive should be able to read them faster, since the hard drive head"
+	echo "does not have to move around the disk as much."
+	echo
+}
+
+version() {
+	printf "pacman-optimize (pacman) %s\n" "$myver"
+	printf "Copyright (C) 2002-2007 Judd Vinet <jvinet@zeroflux.org>.\n"
+	echo
+	printf "This is free software; see the source for copying conditions.\n"
+	printf "There is NO WARRANTY, to the extent permitted by law.\n"
+	echo
+}
+
+die() {
+	error $@
+	exit 1
+}
+
+die_r() {
+	rm -f /tmp/pacman.lck
+	die $@
+}
+
+dbroot="/var/lib/pacman"
+
+if [ "$1" != "" ]; then
+	if [ "$1" = "-h" -o "$1" = "--help" ]; then
+		usage
+		exit 0
+	fi
+	if [ "$1" = "-V" -o "$1" = "--version" ]; then
+		version
+		exit 0
+	fi
+	dbroot="$1"
+fi
+
+# make sure pacman isn't running
+if [ -f /tmp/pacman.lck ]; then
+	die "Pacman lockfile was found.  Cannot run while pacman is running."
+fi
+
+if [ ! -d "$dbroot" ]; then
+	die "$dbroot does not exist or is not a directory"
+fi
+
+if [ ! -w "$dbroot" ]; then
+	die "You must have correct permissions to optimize the database"
+fi
+
+# do not let pacman run while we do this
+touch /tmp/pacman.lck
+
+# step 1: sum the old db
+stat_busy "Md5sum'ing the old database"
+find $dbroot -type f | sort | xargs md5sum > /tmp/pacsums.old
+stat_done
+
+# step 2: tar it up
+stat_busy "Tar'ing up $dbroot"
+cd $dbroot
+tar -czf /tmp/pacmanDB.tgz ./
+if [ $? -ne 0 ]; then
+	stat_fail
+	rm -f /tmp/pacmanDB.tgz /tmp/pacsums.old
+	die_r "tar'ing up $dbroot failed"
+fi
+stat_done
+
+# step 3: make and sum the new db
+stat_busy "Making and md5sum'ing the new db"
+mkdir $dbroot.new
+tar -zxpf /tmp/pacmanDB.tgz -C $dbroot.new/
+if [ $? -ne 0 ]; then
+       rm -f /tmp/pacmanDB.tgz /tmp/pacsums.old
+       rm -rf "$dbroot.new"
+       die_r "untar'ing $dbroot failed"
+fi
+find "$dbroot.new" -type f | sort | sed -e 's/pacman.new/pacman/g' |\
+		xargs md5sum > /tmp/pacsums.new
+stat_done
+
+# step 4: compare the sums
+stat_busy "Checking integrity"
+diff /tmp/pacsums.old /tmp/pacsums.new >/dev/null 2>&1
+if [ $? -ne 0 ]; then
+	# failed
+	stat_fail
+	# leave /tmp/pacsums.old and .new for checking to see what doesn't match up
+	rm -rf "$dbroot.new" /tmp/pacman.lck /tmp/pacmanDB.tgz
+	die_r "integrity check FAILED, reverting to old database"
+fi
+stat_done
+
+# step 5: remove the new temporary database and the old one
+#         and use the .tgz to replace the old one
+stat_busy "Putting the new database in place"
+rm -rf "$dbroot.new" "$dbroot"/*
+tar -zxpf /tmp/pacmanDB.tgz -C "$dbroot"/
+stat_done
+
+# remove the lock file, sum files, and .tgz of database
+rm -f /tmp/pacman.lck /tmp/pacsums.old /tmp/pacsums.new /tmp/pacmanDB.tgz
+
+echo
+echo "Finished.  Your pacman database has been optimized."
+echo
+
+exit 0
+
+# vim: set ts=2 sw=2 noet:
-- 
cgit v1.2.3-70-g09d2