Képfeltöltő szkript

GNY érdeklődött, hogy mivel méretezem át illetve tolom fel a képeket. Másnak is jó lehet a szkript, úgyhogy alább következik. Bash, ImageMagick és SSH kell hozzá. Szerintem cygwin alatt is menne, de nem próbáltam.


#!/bin/bash
#
# Resize and upload photos to website
#
# usage: ./prep.sh src-dir dest-dir
#

# obviously you'll have to change this
USERHOST=user@domain

# remove trailing slashes (one only)
SRC=`echo $1 | sed -e 's/\/$//'`
DST=`echo $2 | sed -e 's/\/$//'`

echo user@host : $USERHOST
echo source : $SRC
echo destination: $DST

# copy originals from source directory to destination
rm -rf $DST
mkdir $DST
cp -r $SRC/*.jpg $DST

# make sure the premissions are properly set
chmod 755 $DST/
chmod 644 $DST/*

# see what we are dealing with
ls $DST

# resize each picture
# cheaters can use '-sharpen 1' to enhance image
cd $DST
for PIC in *.jpg
do
echo resizing $PIC...
convert -resize 50% $PIC $PIC
done

# uploading one big file is quicker than several small
# files, so let's tar them
cd ..
rm -f tmp.tar
tar cf tmp.tar $DST

# it is worth placing one's public key on the target
# machine otherwise the pasword must be entered twice
scp tmp.tar $USERHOST:upload
ssh $USERHOST 'cd upload; tar xf tmp.tar; rm tmp.tar'

echo done.

5 thoughts on “Képfeltöltő szkript

  1. Örök hála a kontribuciért!
    Feltéve, hogy GPL vagy hasonló open source licensz alatt terjed a cucc, nekem is fel kell ajánlanom szerény pecsemet. A rétestöltő NG változata már olyan extrákkal rendelkezik, mint pl teljes dir struktúra feltöltése(hirtelen más nem jut eszembe).
    Egészségünkre:

    --- lipi-upload 2006-11-04 23:28:48.000000000 +0000
    +++ gnypload 2006-11-04 23:35:25.000000000 +0000
    @@ -4,48 +4,51 @@
    #
    # usage: ./prep.sh src-dir dest-dir
    #
    -
    +# License: GPL? :)
    +#
    # obviously you'll have to change this
    -USERHOST=user@domain
    +#USERHOST=user@domain
    +USERHOST=retes.hu

    # remove trailing slashes (one only)
    SRC=`echo $1 | sed -e 's/\/$//'`
    DST=`echo $2 | sed -e 's/\/$//'`
    +TARBALL=`echo $DST | sed s%/%-%`--`basename $0`.tar

    echo user@host : $USERHOST
    echo source : $SRC
    echo destination: $DST
    +echo tarball: $TARBALL

    -# copy originals from source directory to destination
    +# create a clean destination dir tree
    rm -rf $DST
    -mkdir $DST
    -cp -r $SRC/*.jpg $DST
    +mkdir -p $DST
    +(cd $SRC; find -type d) | (cd $DST; xargs mkdir -p)

    # make sure the premissions are properly set
    -chmod 755 $DST/
    -chmod 644 $DST/*
    -
    -# see what we are dealing with
    -ls $DST
    +chmod -R 755 $DST/

    -# resize each picture
    -# cheaters can use '-sharpen 1' to enhance image
    -cd $DST
    -for PIC in *.jpg
    -do
    -echo resizing $PIC...
    -convert -resize 50% $PIC $PIC
    +# fill up destination tree with converted pictures
    +(cd $SRC; find -iname '*.jpg') | while read PIC; do
    + SP=$SRC/$PIC
    + DP=$DST/$PIC
    + echo "resizing $SP -> $DP"
    +
    + # resize each picture
    + # cheaters can use '-sharpen 1' to enhance image
    + convert -resize 50% $SP $DP
    + chmod 644 $DP
    done

    # uploading one big file is quicker than several small
    # files, so let's tar them
    -cd ..
    -rm -f tmp.tar
    -tar cf tmp.tar $DST
    +rm -f $TARBALL
    +tar cf $TARBALL $DST

    # it is worth placing one's public key on the target
    -# machine otherwise the pasword must be entered twice
    -scp tmp.tar $USERHOST:upload
    -ssh $USERHOST 'cd upload; tar xf tmp.tar; rm tmp.tar'
    +# machine otherwise the password must be entered twice
    +ssh $USERHOST "mkdir -p upload"
    +scp $TARBALL $USERHOST:upload/$TARBALL
    +ssh $USERHOST "cd upload; tar xf $TARBALL; rm $TARBALL"

    echo done.

  2. Jogosak az eszrevetelek, bar en altalaban csak egy konyvtarat toltok fel. De legyunk maximalistak. Eclipse plugin mikor lesz belole?

  3. Ahogy nezem, parameterek nelkul root-kent elinditani eleg veszelyes mindkettot.:)
    A patch-eltben levo “chmod -R 755 $DST/”-rol nem is beszelve meg mezei user-kent is.:)))
    Minimum egy “if [ $# -ne 2 ]; then”-es kezdetu blokk kellene az elejere.

  4. Oke Fonok, beveszunk a buliba. Bar en csak magamnak irtam, a kommenteket is csak a publikum kedveert tettem bele, de igazad van, gondoljunk az ongyilkos hajlamu juzerekre is. Ugy latom kenytelen leszek lassan verziokovetesbe kezdeni.

Leave a Reply

Your email address will not be published. Required fields are marked *