1#!/bin/bash 2# 3# bash script to create destination structure of files/directories to be ready for release new version 4# arguments: 5# 1: version number 6# 2: destination directory 7# example: ./make-package.sh 2.05 /home/me/ReleasedMandelbulbers 8 9if [ $# = 2 ] 10then 11 #source dir as current directory 12 sourceDir=${PWD} 13 releaseDir="$2" 14 15 if [ ! -f "$sourceDir/make-package.sh" ]; then 16 echo "this script has to be executed in mandelbulber root directory"; 17 exit 2; 18 fi 19 20 # create release dir, if not already exists 21 mkdir -vp "$releaseDir" 22 if [ ! -d "$releaseDir" ]; then 23 echo "could not create releaseDir: $releaseDir"; 24 exit 3; 25 fi 26 cd "$releaseDir" 27 28 #names of destination folders 29 destNameLinux="mandelbulber2-"$1 30 destNameWin="mandelbulber2-win32-"$1 31 destNameWin64="mandelbulber2-win64-"$1 32 33 #clear already created folders 34 rm -r "$destNameLinux" 35 rm -r "$destNameWin" 36 rm -r "$destNameWin64" 37 38 #making directories 39 mkdir -vp "$destNameLinux" 40 mkdir -vp "$destNameWin" 41 mkdir -vp "$destNameWin64" 42 43 #copying README file 44 cp -vu "$sourceDir/deploy/README" "$destNameLinux" 45 sed -e 's/$/\r/' "$sourceDir/deploy/README-win32.txt" > "$destNameWin/README.txt" 46 sed -e 's/$/\r/' "$sourceDir/deploy/README-win32.txt" > "$destNameWin64/README.txt" 47 48 #copying NEWS file 49 cp -vu "$sourceDir/deploy/NEWS" "$destNameLinux" 50 sed -e 's/$/\r/' "$sourceDir/deploy/NEWS" > "$destNameWin/NEWS.txt" 51 sed -e 's/$/\r/' "$sourceDir/deploy/NEWS" > "$destNameWin64/NEWS.txt" 52 53 #copying COPYING file 54 cp -vu "$sourceDir/deploy/COPYING" "$destNameLinux" 55 sed -e 's/$/\r/' "$sourceDir/deploy/COPYING" > "$destNameWin/COPYING.txt" 56 sed -e 's/$/\r/' "$sourceDir/deploy/COPYING" > "$destNameWin64/COPYING.txt" 57 58 #copying install scripts 59 cp -vu "$sourceDir/deploy/linux/install" "$destNameLinux" 60 cp -vu "$sourceDir/deploy/linux/uninstall" "$destNameLinux" 61 #sed -e 's/$/\r/' "$sourceDir/deploy/win32/install.bat" > "$destNameWin/install.bat" 62 63 #copying desktop file 64 cp -vu "$sourceDir/deploy/linux/mandelbulber2.desktop" "$destNameLinux" 65 cp -vu "$sourceDir/deploy/win32/mandelbulber2.ico" "$destNameWin" 66 cp -vu "$sourceDir/deploy/win64/mandelbulber2.ico" "$destNameWin64" 67 68 #copying share folder 69 mkdir -vp "$destNameLinux/usr/" 70 cp -vurL "$sourceDir/deploy/share" "$destNameLinux/usr/" 71 cp -vurL "$sourceDir/deploy/share/mandelbulber2/"* "$destNameWin/" 72 cp -vurL "$sourceDir/deploy/share/mandelbulber2/"* "$destNameWin64/" 73 74 #copying fomula files 75 cp -vurL "$sourceDir/formula" "$destNameLinux/usr/share/mandelbulber2/" 76 cp -vurL "$sourceDir/formula"* "$destNameWin/" 77 cp -vurL "$sourceDir/formula"* "$destNameWin64/" 78 79 #moving formulas source code to formula directory 80 mkdir -vp "$destNameLinux/formula/" 81 mv -v "$destNameLinux/usr/share/mandelbulber2/formula/definition" "$destNameLinux/formula/" 82 83 #copying language files 84 cp -vurL "$sourceDir/language" "$destNameLinux/usr/share/mandelbulber2/" 85 cp -vurL "$sourceDir/language"* "$destNameWin/" 86 cp -vurL "$sourceDir/language"* "$destNameWin64/" 87 88 #copying opencl files 89 cp -vurL "$sourceDir/opencl" "$destNameLinux/usr/share/mandelbulber2/" 90 cp -vurL "$sourceDir/opencl"* "$destNameWin/" 91 cp -vurL "$sourceDir/opencl"* "$destNameWin64/" 92 93 #copying source files 94 mkdir -vp "$destNameWin/source" 95 96 cp -vurL "$sourceDir/src/" "$destNameLinux/" 97 cp -vurL "$sourceDir/src/" "$destNameWin/source" 98 cp -vurL "$sourceDir/src/" "$destNameWin64/source" 99 100 cp -vurL "$sourceDir/third-party/" "$destNameLinux/" 101 cp -vurL "$sourceDir/third-party/" "$destNameWin/source" 102 cp -vurL "$sourceDir/third-party/" "$destNameWin64/source" 103 104 cp -vurL "$sourceDir/qt/" "$destNameLinux/" 105 cp -vurL "$sourceDir/qt/" "$destNameWin/source" 106 cp -vurL "$sourceDir/qt/" "$destNameWin64/source" 107 108 cp -vurL "$sourceDir/opencl/" "$destNameLinux/" 109 cp -vurL "$sourceDir/opencl/" "$destNameWin/source" 110 cp -vurL "$sourceDir/opencl/" "$destNameWin64/source" 111 112 #create bin folder 113 mkdir -vp "$destNameLinux/usr/bin" 114 115 #copying makefiles 116 mkdir -vp "$destNameLinux/makefiles" 117 mkdir -vp "$destNameWin/source/makefiles" 118 mkdir -vp "$destNameWin64/source/makefiles" 119 120 cp -vu "$sourceDir/qmake/mandelbulber.pro" "$destNameLinux/makefiles/" 121 cp -vu "$sourceDir/qmake/mandelbulber-opencl.pro" "$destNameLinux/makefiles/" 122 cp -vu "$sourceDir/qmake/common.pri" "$destNameLinux/makefiles/" 123 cp -vu "$sourceDir/qmake/installer.pri" "$destNameLinux/makefiles/" 124 125 cp -vu "$sourceDir/qmake/mandelbulber.pro" "$destNameWin/source/makefiles/" 126 cp -vu "$sourceDir/qmake/mandelbulber-opencl.pro" "$destNameWin/source/makefiles/" 127 cp -vu "$sourceDir/qmake/common.pri" "$destNameWin/source/makefiles/" 128 cp -vu "$sourceDir/qmake/mandelbulber.pro" "$destNameWin64/source/makefiles/" 129 cp -vu "$sourceDir/qmake/mandelbulber-opencl.pro" "$destNameWin64/source/makefiles/" 130 cp -vu "$sourceDir/qmake/common.pri" "$destNameWin64/source/makefiles/" 131 132 #copying DLL files 133 cp -vur "$sourceDir/deploy/win32/dll/"* "$destNameWin" 134 cp -vur "$sourceDir/deploy/win64/dll/"* "$destNameWin64" 135 136 #copying windows exe files (needed to be compiled before) 137 cp -vu "$sourceDir/build-mandelbulber-MinGwQt-Release/release/mandelbulber2.exe" "$destNameWin" 138 cp -vu "$sourceDir/build-mandelbulber-MinGw64Qt-Release/release/mandelbulber2.exe" "$destNameWin64" 139 140 DOCFILE="$(curl -s https://api.github.com/repos/buddhi1980/mandelbulber_doc/releases | grep browser_download_url | head -n 1 | cut -d '"' -f 4)" 141 142 echo $DOCFILE 143 144 #copying documentation files 145 mkdir -vp "$destNameLinux/usr/share/doc/mandelbulber2" 146 mkdir -vp "$destNameWin/doc" 147 mkdir -vp "$destNameWin64/doc" 148 wget -O "$destNameLinux/usr/share/doc/mandelbulber2/Mandelbulber_Manual.pdf" $DOCFILE 149 cp -v "$destNameLinux/usr/share/doc/mandelbulber2/Mandelbulber_Manual.pdf" "$destNameWin/doc/" 150 cp -v "$destNameLinux/usr/share/doc/mandelbulber2/Mandelbulber_Manual.pdf" "$destNameWin64/doc/" 151 152 cp -vu "$sourceDir/deploy/NEWS" "$destNameLinux/usr/share/doc/mandelbulber2" 153 cp -vu "$sourceDir/deploy/NEWS" "$destNameWin/doc/" 154 cp -vu "$sourceDir/deploy/NEWS" "$destNameWin64/doc/" 155 156 cd "$releaseDir" 157 158 #delete temporary svn files 159 find . -name .svn -prune -exec rm -rf "{}" \; 160 161 echo release prepared to ${PWD} 162else 163 echo syntax: make-package.sh [number_new] [destination] 164fi 165