diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index b73eab1..eb4d00a 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -10,7 +10,10 @@ RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/ # [Optional] Uncomment this section to install additional OS packages. RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ - && apt-get -y install --no-install-recommends graphviz + && apt-get -y install --no-install-recommends graphviz cmake zlib1g-dev genisoimage +RUN cd /tmp && git clone https://github.com/hamstergene/libdmg-hfsplus \ + && cd libdmg-hfsplus && cmake . -B build && make -C build/dmg -j8 && cp build/dmg/dmg /usr/local/bin \ + && rm -rf /tmp/libdmg-hfsplus # [Optional] Uncomment the next lines to use go get to install anything else you need USER vscode diff --git a/Makefile b/Makefile deleted file mode 100644 index 91bad34..0000000 --- a/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -build: - cd backend && GOOS=linux GOARCH=386 go build -o ../bin/legendsbrowser-linux-386 - cd backend && GOOS=linux GOARCH=amd64 go build -o ../bin/legendsbrowser-linux-x64 - cd backend && GOOS=windows GOARCH=386 go build -o ../bin/legendsbrowser-386.exe - cd backend && GOOS=windows GOARCH=amd64 go build -o ../bin/legendsbrowser-x64.exe - cd backend && GOOS=darwin GOARCH=amd64 go build -o ../bin/legendsbrowser-macos-x64 - cd backend && GOOS=darwin GOARCH=arm64 go build -o ../bin/legendsbrowser-macos-m1 - -run: - cd backend && go run main.go \ No newline at end of file diff --git a/backend/Makefile b/backend/Makefile new file mode 100644 index 0000000..4d82686 --- /dev/null +++ b/backend/Makefile @@ -0,0 +1,16 @@ +build: + GOOS=linux GOARCH=386 go build -o ../bin/legendsbrowser-linux-386 + GOOS=linux GOARCH=amd64 go build -o ../bin/legendsbrowser-linux-x64 + GOOS=windows GOARCH=386 go build -o ../bin/legendsbrowser-386.exe + GOOS=windows GOARCH=amd64 go build -o ../bin/legendsbrowser-x64.exe + GOOS=darwin GOARCH=arm64 go build -o ../bin/legendsbrowser-macos-m1 + +buildMacOs: + mkdir -p /tmp/build/macos + cp -r macos/LegendsBrowser.app /tmp/build/macos/ + GOOS=darwin GOARCH=amd64 go build -o /tmp/build/macos/LegendsBrowser.app/Contents/MacOS/LegendsBrowser + genisoimage -D -V "LegendsBrowser" -no-pad -r -apple -o /tmp/build/uncompressed.dmg /tmp/build/macos + dmg dmg /tmp/build/uncompressed.dmg ../bin/LegendsBrowser.dmg + +run: + cd backend && go run main.go \ No newline at end of file diff --git a/backend/macappshell.sh b/backend/macappshell.sh new file mode 100755 index 0000000..fc24147 --- /dev/null +++ b/backend/macappshell.sh @@ -0,0 +1,85 @@ +#!/bin/bash + +# Mac OSX .app builder + +function die { + echo "ERROR: $1" > /dev/null 1>&2 + exit 1 +} + +if [ "$#" -ne 2 ]; then + die "Usage: `basename $0` AppNameHere icon-file.svg" +fi + +APPNAME=$1 +ICONNAME=$2 + +if [ ! -f $ICONNAME ]; then + die "Image file for icon not found" +fi + +mkdir -p "$APPNAME.app/Contents/"{MacOS,Resources} + +cat > "$APPNAME.app/Contents/Info.plist" < + + + + CFBundleGetInfoString + $APPNAME + CFBundleExecutable + $APPNAME + CFBundleIdentifier + com.example.www + CFBundleName + $APPNAME + CFBundleIconFile + icon.icns + CFBundleShortVersionString + 0.01 + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + IFMajorVersion + 0 + IFMinorVersion + 1 + NSHighResolutionCapable + NSSupportsAutomaticGraphicsSwitching + + +END + +cp $ICONNAME "$APPNAME.app/Contents/Resources/" +cd "$APPNAME.app/Contents/Resources/" + +fileName="$(basename $ICONNAME)" +postfix=${fileName##*.} + +if [[ $postfix == 'svg' ]]; then + qlmanage -z -t -s 1024 -o ./ "$fileName" + fileName=${fileName}.png +fi + +echo $fileName + +mkdir icon.iconset + +sips -z 16 16 "$fileName" --out icon.iconset/icon_16x16.png +sips -z 32 32 "$fileName" --out icon.iconset/icon_16x16@2x.png +cp icon.iconset/icon_16x16@2x.png icon.iconset/icon_32x32.png +sips -z 64 64 "$fileName" --out icon.iconset/icon_32x32@2x.png +sips -z 128 128 "$fileName" --out icon.iconset/icon_128x128.png +sips -z 256 256 "$fileName" --out icon.iconset/icon_128x128@2x.png +cp icon.iconset/icon_128x128@2x.png icon.iconset/icon_256x256.png +sips -z 512 512 "$fileName" --out icon.iconset/icon_256x256@2x.png +cp icon.iconset/icon_256x256@2x.png icon.iconset/icon_512x512.png +sips -z 1024 1024 "$fileName" --out icon.iconset/icon_512x512@2x.png + +# Create .icns file +iconutil -c icns icon.iconset + +# Cleanup +rm -R icon.iconset +rm $fileName diff --git a/backend/macos/LegendsBrowser.app/Contents/Info.plist b/backend/macos/LegendsBrowser.app/Contents/Info.plist new file mode 100644 index 0000000..45dc2b2 --- /dev/null +++ b/backend/macos/LegendsBrowser.app/Contents/Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleGetInfoString + LegendsBrowser + CFBundleExecutable + LegendsBrowser + CFBundleIdentifier + com.example.www + CFBundleName + LegendsBrowser + CFBundleIconFile + icon.icns + CFBundleShortVersionString + 0.01 + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + IFMajorVersion + 0 + IFMinorVersion + 1 + NSHighResolutionCapable + NSSupportsAutomaticGraphicsSwitching + + diff --git a/backend/macos/LegendsBrowser.app/Contents/Resources/icon.icns b/backend/macos/LegendsBrowser.app/Contents/Resources/icon.icns new file mode 100644 index 0000000..8dbbe6b Binary files /dev/null and b/backend/macos/LegendsBrowser.app/Contents/Resources/icon.icns differ