Advertisement
Guest User

Untitled

a guest
Dec 16th, 2010
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;Copyright (C) 2004-2010 John T. Haller
  2. ;Copyright (C) 2008-2010 Brandon Cheng (gluxon)
  3.  
  4. ;Website: http://PortableApps.com/EclipsePortable
  5.  
  6. ;This software is OSI Certified Open Source Software.
  7. ;OSI Certified is a certification mark of the Open Source Initiative.
  8.  
  9. ;This program is free software; you can redistribute it and/or
  10. ;modify it under the terms of the GNU General Public License
  11. ;as published by the Free Software Foundation; either version 2
  12. ;of the License, or (at your option) any later version.
  13.  
  14. ;This program is distributed in the hope that it will be useful,
  15. ;but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17. ;GNU General Public License for more details.
  18.  
  19. ;You should have received a copy of the GNU General Public License
  20. ;along with this program; if not, write to the Free Software
  21. ;Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  22.  
  23. !define PORTABLEAPPNAME "Eclipse Portable"
  24. !define NAME "EclipsePortable"
  25. !define APPNAME "Eclipse"
  26. !define VER "1.6.6.0"
  27. !define WEBSITE "PortableApps.com/EclipsePortable"
  28. !define DEFAULTEXE "eclipse.exe"
  29. !define DEFAULTAPPDIR "App\Eclipse"
  30. !define DEFAULTSETTINGSDIR "Data\settings"
  31. !define LAUNCHERLANGUAGE "English"
  32.  
  33. ;=== Program Details
  34. Name "${PORTABLEAPPNAME}"
  35. OutFile "..\..\${NAME}.exe"
  36. Caption "${PORTABLEAPPNAME} | PortableApps.com"
  37. VIProductVersion "${VER}"
  38. VIAddVersionKey ProductName "${PORTABLEAPPNAME}"
  39. VIAddVersionKey Comments "Allows ${APPNAME} to be run from a removable drive.  For additional details, visit ${WEBSITE}"
  40. VIAddVersionKey CompanyName "PortableApps.com"
  41. VIAddVersionKey LegalCopyright "PortableApps.com & Contributors"
  42. VIAddVersionKey FileDescription "${PORTABLEAPPNAME}"
  43. VIAddVersionKey FileVersion "${VER}"
  44. VIAddVersionKey ProductVersion "${VER}"
  45. VIAddVersionKey InternalName "${PORTABLEAPPNAME}"
  46. VIAddVersionKey LegalTrademarks "PortableApps.com is a Trademark of Rare Ideas, LLC."
  47. VIAddVersionKey OriginalFilename "${NAME}.exe"
  48. ;VIAddVersionKey PrivateBuild ""
  49. ;VIAddVersionKey SpecialBuild ""
  50.  
  51. ;=== Runtime Switches
  52. CRCCheck On
  53. WindowIcon Off
  54. SilentInstall Silent
  55. AutoCloseWindow True
  56. RequestExecutionLevel user
  57.  
  58. ;=== Best Compression
  59. SetCompress Auto
  60. SetCompressor /SOLID lzma
  61. SetCompressorDictSize 32
  62. SetDatablockOptimize On
  63.  
  64. ;=== Program Icon
  65. Icon "..\..\App\AppInfo\appicon.ico"
  66.  
  67. ;=== Include
  68. ;(Standard NSIS)
  69. !include TextFunc.nsh
  70. !include FileFunc.nsh
  71. !include WordFunc.nsh
  72. !include LogicLib.nsh
  73.  
  74. ;(Plugins)
  75. !include TextReplace.nsh
  76.  
  77. ;(Macros)
  78. !insertmacro WordReplace
  79. !insertmacro GetParent
  80. !insertmacro GetParameters
  81. !insertmacro GetRoot
  82.  
  83. ;(Custom)
  84. !include ReplaceInFileWithTextReplace.nsh
  85. !include ReadINIStrWithDefault.nsh
  86. !include RepairUpdir.nsh
  87. !include Explode.nsh
  88.  
  89. ;=== Languages
  90. ;!insertmacro MUI_LANGUAGE "${LAUNCHERLANGUAGE}"
  91. !include PortableApps.comLauncherLANG_${LAUNCHERLANGUAGE}.nsh
  92.  
  93. Var PROGRAMDIRECTORY
  94. Var SETTINGSDIRECTORY
  95. Var PROGRAMEXECUTABLE
  96. Var ADDITIONALPARAMETERS
  97. Var MISSINGFILEORPATH
  98.  
  99. Var ROOT
  100. Var ROOT2
  101. Var LASTDRIVE
  102. Var LASTDRIVE2
  103. Var APPDIRECTORY
  104. Var DATADIRECTORY
  105. Var PARENTDIRECTORY
  106. Var WORKSPACEDIRECTORY
  107. Var WORKSPACEDIRECTORY2
  108. Var JAVAPATH
  109. Var NSISPATH
  110. Var MINGWPATH
  111. Var PARAMETERS
  112.  
  113. Section Main
  114.     ;Finding out the drive's letter and parent dir
  115.     ${GetParent} "$EXEDIR" "$PARENTDIRECTORY"
  116.     ${GetRoot} "$EXEDIR" "$ROOT"
  117.     ${GetParameters} "$PARAMETERS"
  118.     ${WordReplace} "$ROOT" ":" "\:" "+" "$ROOT2"
  119.  
  120.     ${If} ${FileExists} "$EXEDIR\${NAME}.ini"
  121.     ;Reading the INI
  122.  
  123.         ${ReadINIStrWithDefault} "$0" "$EXEDIR\${NAME}.ini" "${NAME}" "${APPNAME}Directory" "${DEFAULTAPPDIR}"
  124.         StrCpy "$PROGRAMDIRECTORY" "$EXEDIR\$0"
  125.  
  126.         ${ReadINIStrWithDefault} "$0" "$EXEDIR\${NAME}.ini" "${NAME}" "SettingsDirectory" "${DEFAULTSETTINGSDIR}"
  127.         StrCpy "$SETTINGSDIRECTORY" "$EXEDIR\$0"
  128.  
  129.         ${ReadINIStrWithDefault} "$PROGRAMEXECUTABLE" "$EXEDIR\${NAME}.ini" "${NAME}" "${APPNAME}Executable" "${DEFAULTEXE}"
  130.         ${ReadINIStrWithDefault} "$JAVAPATH" "$EXEDIR\${NAME}.ini" "${NAME}" "JavaPath" "..\CommonFiles\Java\bin\javaw.exe"
  131.         ${ReadINIStrWithDefault} "$MINGWPATH" "$EXEDIR\${NAME}.ini" "${NAME}" "MinGWPath" "..\MinGWPortable\App\MinGW\bin"
  132.         ${ReadINIStrWithDefault} "$ADDITIONALPARAMETERS" "$EXEDIR\${NAME}.ini" "${NAME}" "AdditionalParameters" ""
  133.  
  134.     ${Else}
  135.     ;Setting Defaults
  136.  
  137.         StrCpy "$PROGRAMDIRECTORY" "$EXEDIR\${DEFAULTAPPDIR}"
  138.         StrCpy "$SETTINGSDIRECTORY" "$EXEDIR\${DEFAULTSETTINGSDIR}"
  139.         StrCpy "$PROGRAMEXECUTABLE" "${DEFAULTEXE}"
  140.         StrCpy "$JAVAPATH" "..\CommonFiles\Java\bin\javaw.exe"
  141.         StrCpy "$MINGWPATH" "..\MinGWPortable\App\MinGW\bin"
  142.         StrCpy "$ADDITIONALPARAMETERS" ""
  143.  
  144.     ${EndIf}
  145.  
  146.     ${GetParent} "$PROGRAMDIRECTORY" "$APPDIRECTORY"
  147.     ${GetParent} "$SETTINGSDIRECTORY" "$DATADIRECTORY"
  148.  
  149.     ${IfNot} ${FileExists} "$PROGRAMDIRECTORY\$PROGRAMEXECUTABLE"
  150.     ;No eclipse.exe in [X]:\PortableApps\EclipsePortable\App\Eclipse\ exists
  151.  
  152.         StrCpy "$MISSINGFILEORPATH" "$PROGRAMDIRECTORY\$PROGRAMEXECUTABLE"
  153.         MessageBox MB_OK|MB_ICONEXCLAMATION "$(LauncherFileNotFound)"
  154.         Abort
  155.  
  156.     ${EndIf}
  157.  
  158.     Push "$EXEDIR\$MINGWPATH"
  159.     Call RepairUpdir
  160.     Pop $MINGWPATH
  161.  
  162.     Push "$EXEDIR\$JAVAPATH"
  163.     Call RepairUpdir
  164.     Pop $JAVAPATH
  165.  
  166.     ${If} ${FileExists} "$SETTINGSDIRECTORY\${NAME}Settings.ini"
  167.     ;Reading the Launcher's settings
  168.  
  169.         ReadINIStr "$0" "$SETTINGSDIRECTORY\${NAME}Settings.ini" "${NAME}Settings" "LastDrive"
  170.         StrCpy "$LASTDRIVE" "$0"
  171.         ReadINIStr "$R1" "$SETTINGSDIRECTORY\${NAME}Settings.ini" "${NAME}Settings" "FirstRun"
  172.  
  173.     ${Else}
  174.     ;No Launcher Settings, using Default
  175.  
  176.         CreateDirectory "$SETTINGSDIRECTORY"
  177.         SetOutPath "$SETTINGSDIRECTORY"
  178.         StrCpy "$LASTDRIVE" "$ROOT"
  179.         StrCpy "$R1" "true"
  180.  
  181.     ${EndIf}
  182.  
  183.     ${WordReplace} "$LASTDRIVE" ":" "\:" "+" "$LASTDRIVE2"
  184.  
  185.     CreateDirectory "$PROGRAMDIRECTORY\configuration\.settings"
  186.     ${IfNot} ${FileExists} "$PROGRAMDIRECTORY\configuration\.settings\org.eclipse.ui.ide.prefs"
  187.         WriteINIStr "$PROGRAMDIRECTORY\configuration\.settings\org.eclipse.ui.ide.prefs" "${NAME}" "YouShouldNotSeeThis" "IfYouDoThatsBad"
  188.         FileOpen $0 "$PROGRAMDIRECTORY\configuration\.settings\org.eclipse.ui.ide.prefs" w
  189.         FileWrite $0 ""
  190.         FileClose $0
  191.     ${EndIf}
  192.  
  193.     ${If} $R1 == "true"
  194.     ;This is the first run of EclipsePortable
  195.  
  196.         StrCpy "$WORKSPACEDIRECTORY" "$DATADIRECTORY\workspace"
  197.         ${WordReplace} "$WORKSPACEDIRECTORY" "\" "\\" "+" "$WORKSPACEDIRECTORY2"
  198.         ${WordReplace} "$WORKSPACEDIRECTORY2" "$ROOT" "$ROOT2" "+" "$WORKSPACEDIRECTORY2"
  199.         CreateDirectory "$PROGRAMDIRECTORY\configuration\.settings"
  200.         ${ConfigWrite} "$PROGRAMDIRECTORY\configuration\.settings\org.eclipse.ui.ide.prefs" "RECENT_WORKSPACES_PROTOCOL=" "3" "$0"
  201.         ${ConfigWrite} "$PROGRAMDIRECTORY\configuration\.settings\org.eclipse.ui.ide.prefs" "MAX_RECENT_WORKSPACES=" "1" "$0"
  202.         ${ConfigWrite} "$PROGRAMDIRECTORY\configuration\.settings\org.eclipse.ui.ide.prefs" "SHOW_WORKSPACE_SELECTION_DIALOG=" "false" "$0"
  203.         ${ConfigWrite} "$PROGRAMDIRECTORY\configuration\.settings\org.eclipse.ui.ide.prefs" "RECENT_WORKSPACES=" "$WORKSPACEDIRECTORY2" "$0"
  204.         ${ConfigWrite} "$PROGRAMDIRECTORY\configuration\.settings\org.eclipse.ui.ide.prefs" "eclipse.preferences.version=" "1" "$0"
  205.         ${ConfigWrite} "$PROGRAMDIRECTORY\configuration\config.ini" "osgi.instance.area.default=" "$WORKSPACEDIRECTORY2" "$0"
  206.  
  207.         StrCpy "$NSISPATH" "$PARENTDIRECTORY\NSISPortable\App\NSIS"
  208.  
  209.         ${WordReplace} "$NSISPATH" "$LASTDRIVE2" "$ROOT2" "+" "$NSISPATH"
  210.         ${WordReplace} "$NSISPATH" "\" "\\" "+" "$NSISPATH"
  211.  
  212.         ${ConfigWrite} "$WORKSPACEDIRECTORY\.metadata\.plugins\org.eclipse.core.runtime\.settings\net.sf.eclipsensis.prefs" "nsisHome=" "$NSISPATH" "$0"
  213.  
  214.     ${Else}
  215.     ;Mananging Eclipse's settings
  216.  
  217.         ${ConfigRead} "$PROGRAMDIRECTORY\configuration\.settings\org.eclipse.ui.ide.prefs" "RECENT_WORKSPACES=" "$WORKSPACEDIRECTORY2"
  218.         ${WordReplace} "$WORKSPACEDIRECTORY2" "$LASTDRIVE2" "$ROOT2" "+" "$WORKSPACEDIRECTORY2"
  219.         ${ConfigWrite} "$PROGRAMDIRECTORY\configuration\.settings\org.eclipse.ui.ide.prefs" "RECENT_WORKSPACES=" "$WORKSPACEDIRECTORY2" "$0"
  220.  
  221.         ;Explode http://nsis.sourceforge.net/Explode
  222.         ;${Explode} "$0" ";" "$WORKSPACEDIRECTORY"
  223.         ${WordReplace} "$WORKSPACEDIRECTORY2" "\\" "\" "+" "$WORKSPACEDIRECTORY"
  224.         ${WordReplace} "$WORKSPACEDIRECTORY" "$ROOT2" "$ROOT" "+" "$WORKSPACEDIRECTORY"
  225.  
  226.         ;Update Locations
  227.         ${ReplaceInFile} "$WORKSPACEDIRECTORY\.metadata\.plugins\org.eclipse.ui.workbench\workbench.xml" "$LASTDRIVE" "$ROOT"
  228.         Delete "$WORKSPACEDIRECTORY\.metadata\.plugins\org.eclipse.ui.workbench\workbench.xml.oldReplaceInFile"
  229.  
  230.         ${ConfigRead} "$WORKSPACEDIRECTORY\.metadata\.plugins\org.eclipse.core.runtime\.settings\net.sf.eclipsensis.prefs" "nsisHome=" "$NSISPATH"
  231.         ${WordReplace} "$NSISPATH" "$LASTDRIVE2" "$ROOT2" "+" "$NSISPATH"
  232.         ${ConfigWrite} "$PROGRAMDIRECTORY\configuration\config.ini" "osgi.instance.area.default=" "$WORKSPACEDIRECTORY2" "$0"
  233.         ${ConfigWrite} "$WORKSPACEDIRECTORY\.metadata\.plugins\org.eclipse.core.runtime\.settings\net.sf.eclipsensis.prefs" "nsisHome=" "$NSISPATH" "$0"
  234.  
  235.     ${EndIf}
  236.  
  237.     ReadEnvStr $R0 "PATH"
  238.     StrCpy $R0 "$MINGWPATH;$R0"
  239.     System::Call kernel32::SetEnvironmentVariable(t"PATH",tR0)
  240.  
  241.     ;Sets up Subversion/Subclipse (but not in this version)
  242.     ;SetEnv::SetEnvVar "USERPROFILE" "$DATADIRECTORY"
  243.     ;SetEnv::SetEnvVar "APPDATA" "$DATADIRECTORY"
  244.  
  245.     WriteINIStr "$SETTINGSDIRECTORY\${NAME}Settings.ini" "${NAME}Settings" "FirstRun" "False"
  246.     WriteINIStr "$SETTINGSDIRECTORY\${NAME}Settings.ini" "${NAME}Settings" "LastDrive" "$ROOT"
  247.  
  248.     ;ChecksForJava
  249.     ${IfNot} ${FileExists} "$JAVAPATH"
  250.          ${If} ${FileExists} "$PARENTDIRECTORY\CommonFiles\Java\bin\javaw.exe"
  251.             StrCpy "$JAVAPATH" "$PARENTDIRECTORY\CommonFiles\Java\bin\javaw.exe"
  252.          ${Else}
  253.             Exec '"$PROGRAMDIRECTORY\$PROGRAMEXECUTABLE" "$PARAMETERS" "$ADDITIONALPARAMETERS"'
  254.             StrCpy "$R2" "0"
  255.          ${EndIf}
  256.     ${EndIf}
  257.  
  258.     ${IfNot} $R2 == 0
  259.     ;5... 4... 3... 2... 1... BLAST OFF TO ECLIPSE!!! Wait... Eclipse isn't a planet
  260.         Exec '"$PROGRAMDIRECTORY\$PROGRAMEXECUTABLE" "$PARAMETERS" -vm "$JAVAPATH" "$ADDITIONALPARAMETERS"'
  261.     ${EndIf}
  262. SectionEnd
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement