From 5741c920e828c306e676dfe020f7c4e84dccafae Mon Sep 17 00:00:00 2001 From: Guangcong Luo Date: Sun, 1 Sep 2013 14:04:58 -0500 Subject: [PATCH] Desktop app packaging information --- desktop/DESKTOP.md | 57 +++++++++++ desktop/Info.plist | 93 ++++++++++++++++++ desktop/icons/icon_32x32.png | Bin 0 -> 3512 bytes desktop/icons/installerbg.bmp | Bin 0 -> 25820 bytes desktop/icons/pokemonshowdown.ico | Bin 0 -> 285478 bytes desktop/index.html | 8 ++ desktop/package.json | 16 ++++ desktop/pokemonshowdown.nsi | 153 ++++++++++++++++++++++++++++++ 8 files changed, 327 insertions(+) create mode 100644 desktop/DESKTOP.md create mode 100644 desktop/Info.plist create mode 100755 desktop/icons/icon_32x32.png create mode 100755 desktop/icons/installerbg.bmp create mode 100755 desktop/icons/pokemonshowdown.ico create mode 100755 desktop/index.html create mode 100755 desktop/package.json create mode 100755 desktop/pokemonshowdown.nsi diff --git a/desktop/DESKTOP.md b/desktop/DESKTOP.md new file mode 100644 index 000000000..c9d469f53 --- /dev/null +++ b/desktop/DESKTOP.md @@ -0,0 +1,57 @@ +Desktop apps +============ + +Pokémon Showdown for desktop is made with [node-webkit][1]. + + [1]: https://github.com/rogerwang/node-webkit + +There's an `.ico` icon (for Windows) and an `.icns` icon (for Mac) in the +`graphics-src` directory of this repository. We use these pretty much +whenever we need icons. + +Note that node-webkit doesn't support normal window icons in Windows, +so we have to use a PNG icon to get scaling not to look horribly ugly. + +Packaging +--------- + +node-webkit's wiki contains packaging instructions, but they're strewn +across their wiki and don't really go into best practices, so I have +better packaging instructions here. + +For performance, we don't zip up the package on either platform. In Windows, +the `index.html` and `package.json` files are dropped directly into the +node-webkit directory, and in OS X the files are dropped into +`Resources/app.nw`. + +Packaging for Windows +--------------------- + +1. Put a copy of node-webkit (build or extract the prebuilt binary) into this + folder. + +2. Rename `nw.exe` to `pokemonshowdown.exe` + +3. Edit `pokemonshowdown.exe` with [Resource Hacker][2], and replace the + node-webkit icon with`icons/pokemonshowdown.ico` + +3. Using [NSIS][2], build `pokemonshowdown.nsi` + + [2]: http://www.angusj.com/resourcehacker/ + [3]: http://nsis.sourceforge.net/ + +Packaging for OS X +------------------ + +1. Get a copy of node-webkit (build or extract the prebuilt binary) + +2. Rename it to `Pokemon Showdown.app` + +3. Replace `Pokemon Showdown.app/Contents/Info.plist` with the `Info.plist` + in this directory + +4. Replace `Pokemon Showdown.app/Contents/Resources/nw.icns` with the + icns file in `graphics-src`. + +5. Create a folder `Pokemon Showdown.app/Contents/Resources/app.nw` and put + `index.html` and `package.json` in it. diff --git a/desktop/Info.plist b/desktop/Info.plist new file mode 100644 index 000000000..7ac17acdd --- /dev/null +++ b/desktop/Info.plist @@ -0,0 +1,93 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + Pokemon Showdown + CFBundleDocumentTypes + + + CFBundleTypeIconFile + nw.icns + CFBundleTypeName + node-webkit App + CFBundleTypeRole + Viewer + LSHandlerRank + Owner + LSItemContentTypes + + com.intel.nw.app + + + + CFBundleTypeName + Folder + CFBundleTypeOSTypes + + fold + + CFBundleTypeRole + Viewer + LSHandlerRank + None + + + CFBundleExecutable + node-webkit + CFBundleIconFile + nw.icns + CFBundleIdentifier + com.intel.nw + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Pokemon Showdown + CFBundlePackageType + APPL + CFBundleShortVersionString + 29.0.1547.31 + CFBundleVersion + 1547.31 + LSFileQuarantineEnabled + + LSMinimumSystemVersion + 10.6.0 + NSPrincipalClass + NSApplication + NSSupportsAutomaticGraphicsSwitching + + SCMRevision + 213023 + UTExportedTypeDeclarations + + + UTTypeConformsTo + + com.pkware.zip-archive + + UTTypeDescription + node-webkit App + UTTypeIconFile + nw.icns + UTTypeIdentifier + com.intel.nw.app + UTTypeReferenceURL + https://github.com/rogerwang/node-webkit/wiki/How-to-package-and-distribute-your-apps + UTTypeTagSpecification + + com.apple.ostype + node-webkit + public.filename-extension + + nw + + public.mime-type + application/x-node-webkit-app + + + + + diff --git a/desktop/icons/icon_32x32.png b/desktop/icons/icon_32x32.png new file mode 100755 index 0000000000000000000000000000000000000000..d8a897dc95629214ab39f3e077b251a8d883d678 GIT binary patch literal 3512 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 W#t&Q`8&JGcPcNl}vR^!M?QSD!#p_Dto(njz=& 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

H_@#`VL9&2J+XEc5QgX#K0h`Dy?3aJK); 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

$X~9`HMO-YoNg*e~?} zXE`HmO=HRctQ(%I`EIwpRh}y4!Mjyl(2xO!El>=9pa?m_!n1}gkaudDiVNhRUP$`{ zS*RImxE$a-B10DN{#X71>;lFMW41G9$etq37BTE$@*u>N3)G`pHfVpD93)RDCk$CZ zd0_?gG3<((u>QaCIewPkqdDylPV+aaxoz;9@`?LnN*f(wP zoX1aaHj`0*Y1&JWk(39tllXl+R{8;qkHvvWDVAbU10R6PMvm<_@i!Hfg4PKW+~ zQ*oc)OBr(=ImenlzybIGJ0;j{z4#rX4=`V?5qbgZ1lZ{>_FI1Io8Jrqd6)-u2V4R6 z15N@40y+=)Lp*P`c|h!&dVsG#0;V>)3@A>`u{(d(*RG{`BPOuXkOO{(98kGJ)(?9v zg-@^$KEWKx*Kz={0VM}eGr)Wy{en#T1&9$aXQ2E8`UrP{jwPh4`eV!{0uR!7@54_> zVeF8;0`wzwVIl!8C9uX2yohH!k${YdrQHBI5u-sH!bCLX#vP#F=h*7+z?R?3?^nQY z@i+O~{v}~Qxv$)3?mLfx;PLRdj9Lo#LXP+ee5X3j56=rf$M55BM?l^L z!sfXM8^9el0Ar7gXF6*e05TvYz-2-X@BtWhFC zm<^H|#J*r3!~x+0AP0CWH>}Cjxc6P;$Y{H(KokBYwabf*~8U{Y;)Xd}qx^y#+^UQ`8ClKFd~rm)erk8sIj6 zySBYtm|#IpF)Wjl|!fEkxNAx~adi0T`cPE`T`+<|ds?8{ovMA+{XhwVn9> zJ7!Nn3*-XZqA#$AVBHbS2b&=K5C`-=zEk2Z9hY3h0V~m`djtGu4B%ECWIz*u-_2Yg z>w(MR0~Eps;9RgoU#t%VA3&`SWa$S=MSQ}luk>@QgUEhB?E{>^bLIgT0V9EKz|%mp z&jVr~9S?ASaAWhI-*>mX0MF@1SM#JQ;Y_s*&~gAZ10|>(EWWS|v4O=ZHlXD|KKueh z4vd8ycu#VWFUUTm<-ptU5$;_MSh=G4qd1{;r==D_%LmOtrEjTomF}(SSKs|L!~W3U z<=8sxbJjtbdC*$?=KfjtyP?k=HUQ)j{UF9h0}uyb4Dt-}i$}E$fLf%TsC8mJP*IA% zEl*A#+YA01eSxoZYK8e=U1ao|1C2P~nz?E=NQBox)H!=7AAsDXo&F)X-&CNF!Fu2; z><2LO04bN*52R}WmpOcZy7GYOiQ%7uICbR#`{Mr|nLMBt0O0Bqz|5wQ0p;1zp;~s{ zY0G-Sicn{Z99U=A1I!b^C$P$aLS+xklzik2^G;4ej9?smgE5U}6V!)CRvBS^uKkO< zZLOcNdtRS?XzcfJKNu&W4M2Z`u?E%&Fs8{|#R=3LurAoeVgq>ZnQqH}UTY&4_`Gy! z*8)8O9R+KYAP)GJY+O2Bjytb`53pC&0+gU%;wt6>J_!EbKpucSfn^C^@Bz>d6mSUr zK)VsoG-?4axGqrrKpsx$2fUJNdu%Vg_+0Hg;0ADsYc>o9S_8iU{tfsh@KvDMKfry~ z1Z-;x8NfQhJJkw1?z53MoUUSp zd8j4KMIDin1*j#e_76s=xM3FRiVSG`;PJNFXEM%32IsWFmPvAc1M!W)h(!)WEkPgT zBfG2Gs3Wu5q81Tx0MiCw57M>b6kDDg*t1p52EbY=(z|Or844d@(z`?915A{I+n0-< z+ipqpKPiQny}%d%{r?Y9FVYzqGKJJ~OAwJ0Ui!FA|| zx}JYjnI%`@6O>)vC}pS{D!YW(0AhrU50t9-z)C4We4rR{!s7FbqzHLK+60B}Go|44 zG*SM+$%&E&yCC=27|B&W!n=}lXr$zr@q+AwZ%a1fhX&rl_Az)4Xj9O3(Q$xiaO1u)UUf=`olIf_1|%8>C0))`B$@WgONDTRMB3xN

6o0XM)IU>C`jC8c{pLxJ# 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 literal 0 HcmV?d00001 diff --git a/desktop/index.html b/desktop/index.html new file mode 100755 index 000000000..1902130d2 --- /dev/null +++ b/desktop/index.html @@ -0,0 +1,8 @@ + + \ No newline at end of file diff --git a/desktop/package.json b/desktop/package.json new file mode 100755 index 000000000..76db8bfcc --- /dev/null +++ b/desktop/package.json @@ -0,0 +1,16 @@ +{ + "name": "Pokemon Showdown", + "version": "0.1.0", + + "main": "index.html", + "node-remote": "play.pokemonshowdown.com", + "window": { + "icon": "icons/icon_32x32.png", + "title": "Loading...", + "toolbar": false, + "show": false + }, + "webkit": { + "plugin": true + } +} diff --git a/desktop/pokemonshowdown.nsi b/desktop/pokemonshowdown.nsi new file mode 100755 index 000000000..3a9c2d38b --- /dev/null +++ b/desktop/pokemonshowdown.nsi @@ -0,0 +1,153 @@ +;NSIS Modern User Interface +;Installer builder for Pokemon Showdown + +;-------------------------------- +;Include Modern UI + + !include "MUI2.nsh" + +;-------------------------------- +;General + +# MUI Symbol Definitions +!define MUI_ICON "icons\pokemonshowdown.ico" + +!define APPNAME "Pokemon Showdown" +!define COMPANYNAME "Pokemon Showdown" +!define ABOUTURL "http://pokemonshowdown.com/" # "Publisher" link +!define INSTALLSIZE 48000 + + ;Name and file + Name "Pokemon Showdown" + OutFile "setup.exe" + + ;Default installation folder + InstallDir "$PROGRAMFILES\Pokemon Showdown" +CRCCheck on +XPStyle on +ShowInstDetails show + + ;Get installation folder from registry if available + InstallDirRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "InstallLocation" + + ;Request application privileges for Windows Vista +# RequestExecutionLevel user +RequestExecutionLevel admin + +;-------------------------------- +;Interface Settings + + !define MUI_HEADERIMAGE + !define MUI_HEADERIMAGE_BITMAP "icons\installerbg.bmp" ; optional + !define MUI_ABORTWARNING + +;-------------------------------- +;Pages + +# !insertmacro MUI_PAGE_COMPONENTS + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + +!define MUI_FINISHPAGE_NOAUTOCLOSE +!define MUI_FINISHPAGE_RUN +!define MUI_FINISHPAGE_RUN_TEXT "Play Pokemon Showdown" +!define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink" + + !insertmacro MUI_PAGE_FINISH + + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + +;-------------------------------- +;Installer Sections + +Section "Main" SecMain + + setOutPath $INSTDIR + # Files added here should be removed by the uninstaller (see section "uninstall") + file "pokemonshowdown.exe" + file "package.json" + file "index.html" + file "nw.pak" + file "libEGL.dll" + file "libGLESv2.dll" + file "ffmpegsumo.dll" + file "icudt.dll" + CreateDirectory "$INSTDIR\icons" + setOutPath "$INSTDIR\icons" + file "icons\icon_32x32.png" + file "icons\pokemonshowdown.ico" + + writeUninstaller "$INSTDIR\uninstall.exe" + + createShortCut "$SMPROGRAMS\${APPNAME}.lnk" "$INSTDIR\pokemonshowdown.exe" "" "$INSTDIR\icons\pokemonshowdown.ico" + + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayName" "${APPNAME}" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\"" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "InstallLocation" "$\"$INSTDIR$\"" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayIcon" "$\"$INSTDIR\icons\pokemonshowdown.ico$\"" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "Publisher" "$\"${COMPANYNAME}$\"" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "URLInfoAbout" "$\"${ABOUTURL}$\"" + # There is no option for modifying or repairing the install + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "NoModify" 1 + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "NoRepair" 1 + # Set the INSTALLSIZE constant (!defined at the top of this script) so Add/Remove Programs can accurately report the size + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "EstimatedSize" ${INSTALLSIZE} + +SectionEnd + +;-------------------------------- +;Descriptions + + ;Language strings +# LangString DESC_SecMain ${LANG_ENGLISH} "A test section." + + ;Assign language strings to sections +# !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN +# !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) +# !insertmacro MUI_FUNCTION_DESCRIPTION_END + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + + # Remove Start Menu launcher + delete "$SMPROGRAMS\${APPNAME}.lnk" + + # Remove files + delete "$INSTDIR\pokemonshowdown.exe" + delete "$INSTDIR\package.json" + delete "$INSTDIR\index.html" + delete "$INSTDIR\nw.pak" + delete "$INSTDIR\libEGL.dll" + delete "$INSTDIR\libGLESv2.dll" + delete "$INSTDIR\ffmpegsumo.dll" + delete "$INSTDIR\icudt.dll" + delete "$INSTDIR\icons\icon_32x32.png" + delete "$INSTDIR\icons\pokemonshowdown.ico" + delete "$INSTDIR\data\icon_32x32.png" + delete "$INSTDIR\data\pokemonshowdown.ico" + rmDir "$INSTDIR\icons" + rmDir "$INSTDIR\data" + + # Always delete uninstaller as the last action + delete $INSTDIR\uninstall.exe + + # Try to remove the install directory - this will only happen if it is empty + rmDir $INSTDIR + + # Remove uninstaller information from the registry + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" + +SectionEnd + +Function LaunchLink + ExecShell "" "$INSTDIR\pokemonshowdown.exe" +FunctionEnd