[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