Skip to content

Instantly share code, notes, and snippets.

@ahmednuaman
Created November 26, 2012 15:19
Show Gist options
  • Save ahmednuaman/4148746 to your computer and use it in GitHub Desktop.
Save ahmednuaman/4148746 to your computer and use it in GitHub Desktop.
SVN to FTP
#!/usr/bin/env bash
DIR='tmp'
REMOTE='your_app'
echo 'Making tmp dir'
if [[ -d "$DIR" ]]; then
rm -rf $DIR
fi
echo 'Exporting SVN to tmp'
svn export --force https://svn.repo/trunk/ $DIR
echo 'Updating .htaccess'
sed -i.bak s/trunk/$REMOTE/g $DIR/.htaccess
rm $DIR/.htaccess.bak
echo 'Updating index.php'
sed -i.bak "s/define('SVNVERSION', '1')/define('SVNVERSION', '$(svnversion | md5)')/g" $DIR/index.php
rm $DIR/index.php.bak
echo 'Compressing files'
FOLDERS=('css' 'js')
for folder in "${FOLDERS[@]}"; do
# set out path
DIST=$DIR/assets/$folder/dist/packaged.$folder
# check the dir exists
if [[ ! -d "$DIR/assets/$folder/dist/" ]]; then
# let's make it
mkdir $DIR/assets/$folder/dist/
fi
# clean the dir
rm -rf $DIR/assets/$folder/dist/*
# concat and minify
cat $DIR/assets/$folder/vendor/*.$folder > $DIST
cat $DIR/assets/$folder/*.$folder >> $DIST
yuglify $DIST
# remove unmin'd file
rm $DIST
rm $DIR/assets/$folder/*.$folder
rm -rf $DIR/assets/$folder/vendor
# move files
mv $DIR/assets/$folder/dist/*.$folder $DIR/assets/$folder/
rm -rf $DIR/assets/$folder/dist/
done
echo 'Cleaning up'
rm $DIR/assets/css/*.less
rm $DIR/assets/img/*.psd
echo 'FTPing files'
cd $DIR
ncftpput -R -v -u ftp_username -p ftp_password ftp_host $REMOTE/ .
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment