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 <[email protected]> > --- > 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
