101 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| # Do some checks.
 | |
| 
 | |
| # Do we have brew installed?
 | |
| brew config | grep HOMEBREW_VERSION &>/dev/null
 | |
| if [ $? -ne 0 ]; then
 | |
|     echo "Please, install brew (http://brew.sh)"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| # Do we have Go installed?
 | |
| # ToDo: more proper check.
 | |
| if [ -z ${GOPATH} ]; then
 | |
|     echo "Please, install Go >= 1.7 for continue and configure your shell. See Go installation docs for more information."
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| # Do we have GTK+ installed?
 | |
| GTK_STATUS=$(brew info gtk+ | grep Cellar)
 | |
| if [ $? -ne 0 ]; then
 | |
|     echo "Please, install GTK+ (brew install gtk+ gtksourceview)"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| # Okay, let's compile.
 | |
| echo "Getting URTrator (and dependencies) sources"
 | |
| go get -u -v -d github.com/pztrn/urtrator
 | |
| if [ $? -ne 0 ]; then
 | |
|     echo "Failed to get URTrator sources"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| echo "Building URTrator..."
 | |
| go build -v github.com/pztrn/urtrator
 | |
| if [ $? -ne 0 ]; then
 | |
|     echo "Failed to build URTrator! Please, create a new bug report at https://github.com/pztrn/urtrator and attach FULL console output!"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| echo "Creating app bundle..."
 | |
| mkdir -p URTrator.app/Contents/{MacOS,Framework,Resources}
 | |
| cp $GOPATH/bin/urtrator URTrator.app/Contents/MacOS/
 | |
| cp $GOPATH/src/github.com/pztrn/urtrator/artwork/urtrator.icns URTrator.app/Contents/Resources/
 | |
| 
 | |
| #####################################################################
 | |
| # APP BUNDLE INFO.PLIST
 | |
| #####################################################################
 | |
| INFOPLIST='<?xml version="1.0" encoding="UTF-8"?>
 | |
| <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | |
| <plist version="1.0">
 | |
| <dict>
 | |
|   <key>CFBundleGetInfoString</key>
 | |
|   <string>URTrator</string>
 | |
|   <key>CFBundleExecutable</key>
 | |
|   <string>urtrator.sh</string>
 | |
|   <key>CFBundleIdentifier</key>
 | |
|   <string>name.pztrn.urtrator</string>
 | |
|   <key>CFBundleName</key>
 | |
|   <string>URTrator</string>
 | |
|   <key>CFBundleIconFile</key>
 | |
|   <string>urtrator.icns</string>
 | |
|   <key>CFBundleShortVersionString</key>
 | |
|   <string>0.1.0</string>
 | |
|   <key>CFBundleInfoDictionaryVersion</key>
 | |
|   <string>6.0</string>
 | |
|   <key>CFBundlePackageType</key>
 | |
|   <string>APPL</string>
 | |
|   <key>IFMajorVersion</key>
 | |
|   <integer>0</integer>
 | |
|   <key>IFMinorVersion</key>
 | |
|   <integer>1</integer>
 | |
| </dict>
 | |
| </plist>'
 | |
| 
 | |
| echo ${INFOPLIST} > URTrator.app/Contents/Info.plist
 | |
| 
 | |
| echo -e '#!/bin/bash\ncd "${0%/*}"\n./urtrator' > ./URTrator.app/Contents/MacOS/urtrator.sh
 | |
| chmod +x ./URTrator.app/Contents/MacOS/urtrator.sh
 | |
| #####################################################################
 | |
| 
 | |
| # Libraries works.
 | |
| # First iteration - main libraries.
 | |
| echo "Copying libraries..."
 | |
| dylibbundler -of -b -x ./URTrator.app/Contents/MacOS/urtrator -d ./URTrator.app/Contents/Framework/ -p @executable_path/../Framework/
 | |
| 
 | |
| # Fix shit for dylibbundler. By this moment we should have everything
 | |
| # we needed in Framework directory.
 | |
| for lib in $(ls ./URTrator.app/Contents/Framework); do
 | |
|     libname=$(echo ${lib} | awk -F"/" {' print $NF '})
 | |
|     DEPS=$(otool -L ./URTrator.app/Contents/Framework/${lib} | grep "/usr/local")
 | |
|     for dep in ${DEPS[@]}; do
 | |
|         dep_name=$(echo ${dep} | awk -F"/" {' print $NF '})
 | |
|         install_name_tool -change ${dep} @executable_path/../Framework/${dep_name} ./URTrator.app/Contents/Framework/${libname}
 | |
|     done
 | |
| done
 | |
| 
 | |
| echo "Finishing..."
 | |
| 
 | |
| echo "URTrator is ready! Copy URTrator.app bundle to Applications and launch it!"
 |