[aur-dev] [PATCH] Add a upload directory tranform script

Dan McGee dan at archlinux.org
Wed Aug 10 09:05:12 EDT 2011


This goes with the previous patch that moves uploads into segmented
subdirectories. To actually run, follow the DRYRUN instructions.

Signed-off-by: Dan McGee <dan at archlinux.org>
---
 scripts/uploadbuckets.sh |   58 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 58 insertions(+), 0 deletions(-)
 create mode 100755 scripts/uploadbuckets.sh

diff --git a/scripts/uploadbuckets.sh b/scripts/uploadbuckets.sh
new file mode 100755
index 0000000..3252692
--- /dev/null
+++ b/scripts/uploadbuckets.sh
@@ -0,0 +1,58 @@
+#!/bin/bash
+
+DRYRUN=${DRYRUN:-1}
+
+source="$1"
+dest="$2"
+
+if [[ -z $source || -z $dest ]]; then
+	echo 'usage: uploadbuckets.sh <source> <dest>'
+	echo 'Script runs in DRYRUN mode by default.'
+	echo 'To run for real, set DRYRUN=0 in your environment.'
+	exit 1
+fi
+
+if [[ ! -d $source ]]; then
+	echo 'error: source is not a directory'
+	exit 1
+fi
+
+if [[ -e $dest && ! -d $dest ]]; then
+	echo 'error: dest is not a directory'
+	exit 1
+fi
+
+if [[ $(readlink -e $dest) = $(readlink -e $source) ]]; then
+	echo 'error: source and dest cannot be the same. Rotate the result'
+	echo 'into place once the migration is complete.'
+	exit 1
+fi
+
+if [[ ! -d $dest ]]; then
+	mkdir $dest
+fi
+
+shopt -s nullglob
+
+for package in "$source"/*; do
+	pkgname="${package##*/}"
+	newfolder="$dest/${pkgname:0:2}"
+	if [[ ! -d "$newfolder" ]]; then
+		if [[ $DRYRUN -gt 0 ]]; then
+			echo mkdir -p "$newfolder"
+		else
+			mkdir -p "$newfolder"
+		fi
+	fi
+	if [[ $DRYRUN -gt 0 ]]; then
+		echo mv "$source/$pkgname" "$newfolder/$pkgname"
+	else
+		mv "$source/$pkgname" "$newfolder/$pkgname"
+	fi
+done
+
+if [[ $DRYRUN -gt 0 ]]; then
+	echo
+	echo 'DRYRUN mode was enabled.'
+	echo 'To run for real, set DRYRUN=0 in your environment.'
+fi
-- 
1.7.6



More information about the aur-dev mailing list