On Thu, Jul 28, 2011 at 02:16:37PM -0500, Dan McGee wrote:
This goes with the previous patch that moves uploads into segmented subdirectories.
Signed-off-by: Dan McGee <dan@archlinux.org> --- scripts/uploadbuckets.sh | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 42 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..1bb1a90 --- /dev/null +++ b/scripts/uploadbuckets.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +DRYRUN=1 + +source="$1" +dest="$2" + +if [[ -z $source || -z $dest ]]; then + echo 'usage: uploadbuckets.sh <source> <dest>' + 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 [[ ! -d $dest ]]; then + mkdir $dest +fi + +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"
This won't work if "$source" = "$dest" and there's a package name with length 2. We should probably add a check to assert that source and target directory are not equal.
+ fi +done -- 1.7.6