daily pastebin goal
65%
SHARE
TWEET

Untitled

a guest Feb 13th, 2018 80 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/sh
  2.  
  3. NAME="$1"; shift
  4. APP="$1"; shift
  5. EXE="$1"; shift
  6. WINE=./wine
  7.  
  8.  
  9. NICE_NAME=$(echo $(echo "$NAME" | sed 's/[A-Z]/ \0/g'))
  10. DOT_NAME=$(echo "$NICE_NAME" | tr " " . )
  11. BASENAME=$(basename "$APP")
  12. WINEEXE="/app/bin/wine"
  13. SRCLIB="/usr/lib32/"
  14. LDLINUX=$SRCLIB/ld-linux.so.2
  15. ARCH="i386"
  16. LIB="lib"
  17.  
  18. mkdir -p target/package/files/bin
  19. mkdir -p target/package/files/lib
  20. mkdir -p target/package/export/share/applications
  21. mkdir -p target/package/export/share/icons/hicolor
  22. mkdir -p target/\[Flatpak-Novels\]$DOT_NAME
  23.  
  24. cat << EOF > target/package/files/bin/run.sh
  25. #!/bin/bash
  26. export WINEPREFIX=\$HOME/.var/app/org.flatpaknovels.$NAME/
  27. export SAVEDATA=\$WINEPREFIX/savedata
  28. export WINEDLLOVERRIDES="mscoree=d;mshtml=d;"
  29. export WINEEXE="$WINEEXE"
  30. export LD_LIBRARY_PATH=.
  31. cd "/app/$BASENAME"
  32.  
  33. # Create and link savedata
  34. [ -L /tmp/savedata ] && rm /tmp/savedata
  35. ln -s \$SAVEDATA /tmp/savedata
  36. if [ ! -e \$SAVEDATA ] ; then
  37.     if [ -e savedata.default ] ; then
  38.         cp -r savedata.default \$SAVEDATA
  39.     else
  40.         mkdir -p \$SAVEDATA
  41.     fi
  42. fi
  43.  
  44. # Logo and message
  45. ./pixterm -m FFFFFF -s 2 Flatpak-Novels.png
  46. cat Flatpak-Novels.md | sed -e "s|FLATPAKNAME|org.flatpaknovels.$NAME|" -e "s|WINEPREFIX|\$WINEPREFIX|"
  47.  
  48. # Registry
  49. if [ -e autoimport.reg ] ; then
  50.     \$WINEEXE regedit /C autoimport.reg &>/dev/null
  51. else
  52.     echo 'Windows Registry Editor Version 5.00' >/tmp/import.reg
  53.     echo '[HKEY_CURRENT_USER\Software\Wine\DllRedirects]' >>/tmp/import.reg
  54.     echo '"wined3d"="wined3d-csmt.dll"' >>/tmp/import.reg
  55.     \$WINEEXE regedit /C /tmp/import.reg &>/dev/null
  56. fi
  57.  
  58. # Game
  59. if [ -e pre-run.sh ] ; then
  60.     sh pre-run.sh || exit 1
  61. fi
  62. if [ "\$1" == "winecfg" ] ; then
  63.     \$WINEEXE winecfg
  64. elif [ "\$1" == "regedit" ] ; then
  65.     \$WINEEXE regedit
  66. elif [ "\$1" == "bash" ] ; then
  67.     alias regedit="\$WINEEXE regedit"
  68.     alias winecfg="\$WINEEXE winecfg"
  69.     bash
  70. else
  71.     export WINEDEBUG=-all
  72.     \$WINEEXE "$EXE" \$@
  73.     exit $?
  74. fi
  75. EOF
  76.  
  77. cat << EOF >target/package/metadata
  78. [Application]
  79. name=org.flatpaknovels.$NAME
  80. runtime=org.freedesktop.Platform/$ARCH/1.6
  81. command=run.sh
  82.  
  83. [Context]
  84. features=devel;multiarch;
  85. sockets=x11;pulseaudio;
  86. shared=ipc;
  87. devices=all;
  88. EOF
  89.  
  90. cat << EOF >target/\[Flatpak-Novels\]$DOT_NAME/install.sh
  91. #!/bin/bash
  92. # Installs game bundle for user.
  93. # You can delete everything after installation.
  94.  
  95. DIR=\$(dirname "\$0")
  96. set -ex
  97. flatpak --user remote-add --if-not-exists --from gnome https://sdk.gnome.org/gnome.flatpakrepo || true
  98. flatpak --user install -y --app --bundle "\$DIR/$NAME.flatpak" || echo "Installation failed. Check if you have Flatpak properly configured. See http://flatpak.org/ for more info."
  99. EOF
  100.  
  101. cat << EOF >target/\[Flatpak-Novels\]$DOT_NAME/uninstall.sh
  102. #!/bin/bash
  103. # You can as well use package manager to uninstall the game
  104. echo You can as well use package manager to uninstall the game
  105.  
  106. set -ex
  107. flatpak --user uninstall org.flatpaknovels.$NAME
  108. EOF
  109.  
  110. cat << EOF >target/\[Flatpak-Novels\]$DOT_NAME/run.sh
  111. #!/bin/bash
  112. set -ex
  113. flatpak run org.flatpaknovels.$NAME \$@
  114. EOF
  115.  
  116. cat << EOF >target/package/export/share/applications/org.flatpaknovels.$NAME.desktop
  117. [Desktop Entry]
  118. Version=1.0
  119. Name=$NICE_NAME
  120. Exec=run.sh
  121. Icon=org.flatpaknovels.$NAME
  122. StartupNotify=true
  123. Terminal=false
  124. Type=Application
  125. Categories=Game;
  126. EOF
  127.  
  128.  
  129. set -ex
  130. [ -e "$APP"/icon.jpg ] && convert "$APP"/icon.jpg "$APP"/icon.png
  131. [ -e "$APP"/icon.png ] && cp "$APP"/icon.png target/package/export/share/icons/hicolor/org.flatpaknovels.$NAME.png
  132. cp -rd "$APP" target/package/files/
  133. cp Flatpak-Novels.png "target/package/files/$BASENAME"
  134. cp Flatpak-Novels.md "target/package/files/$BASENAME"
  135. cp pixterm "target/package/files/$BASENAME"
  136. cp -rd $WINE/bin $WINE/$LIB $WINE/share target/package/files/
  137. cp -d $SRCLIB/libpng12.so* target/package/files/lib
  138. cp -d $SRCLIB/libudev.so* target/package/files/lib
  139. find target/package/files/$LIB -iname "*libz*" -print -delete
  140. [ -d "$APP/lib-wine" ] && cp "$APP/lib-wine"/* target/package/files/$LIB/wine
  141. [ ! -z $LDLINUX ] && cp $LDLINUX target/package/files/$LIB
  142.  
  143. chmod +x target/package/files/bin/run.sh
  144. chmod +x target/\[Flatpak-Novels\]$DOT_NAME/install.sh
  145. chmod +x target/\[Flatpak-Novels\]$DOT_NAME/uninstall.sh
  146. chmod +x target/\[Flatpak-Novels\]$DOT_NAME/run.sh
  147. cp "$0" target/package/files/flatpak-make
  148.  
  149.  
  150. flatpak build-export target/repo target/package
  151. flatpak build-bundle --arch=$ARCH target/repo target/\[Flatpak-Novels\]$DOT_NAME/$NAME.flatpak org.flatpaknovels.$NAME
RAW Paste Data
Pastebin PRO SPRING Special!
Get 60% OFF Pastebin PRO accounts!
Top