Advertisement
Guest User

rednotebook

a guest
Apr 4th, 2010
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.79 KB | None | 0 0
  1. ;TODO ADD SECONDARY LAUNCH ALA GIMP
  2.  
  3.  
  4. ;Copyright (C) 2004-2009 John T. Haller
  5.  
  6. ;Website: http://PortableApps.com/RedNotebookPortable
  7.  
  8. ;This software is OSI Certified Open Source Software.
  9. ;OSI Certified is a certification mark of the Open Source Initiative.
  10.  
  11. ;This program is free software; you can redistribute it and/or
  12. ;modify it under the terms of the GNU General Public License
  13. ;as published by the Free Software Foundation; either version 2
  14. ;of the License, or (at your option) any later version.
  15.  
  16. ;This program is distributed in the hope that it will be useful,
  17. ;but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  19. ;GNU General Public License for more details.
  20.  
  21. ;You should have received a copy of the GNU General Public License
  22. ;along with this program; if not, write to the Free Software
  23. ;Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  24.  
  25. !define NAME "RedNotebookPortable"
  26. !define PORTABLEAPPNAME "RedNotebook Portable"
  27. !define APPNAME "RedNotebook"
  28. !define VER "0.0.9.3"
  29. !define WEBSITE "PortableApps.com/RedNotebookPortable"
  30. !define DEFAULTEXE "rednotebook.exe"
  31. !define DEFAULTAPPDIR "RedNotebook"
  32. ; =============== Change Made
  33. !define DEFAULTGTKDIR "rednotebook"
  34. !define DEFAULTSETTINGSDIR "RedNotebook"
  35. !define LAUNCHERLANGUAGE "English"
  36.  
  37. ;=== Program Details
  38. Name "${PORTABLEAPPNAME}"
  39. OutFile "..\..\${NAME}.exe"
  40. Caption "${PORTABLEAPPNAME} | PortableApps.com"
  41. VIProductVersion "${VER}"
  42. VIAddVersionKey ProductName "${PORTABLEAPPNAME}"
  43. VIAddVersionKey Comments "Allows ${APPNAME} to be run from a removable drive. For additional details, visit ${WEBSITE}"
  44. VIAddVersionKey CompanyName "PortableApps.com"
  45. VIAddVersionKey LegalCopyright "John T. Haller"
  46. VIAddVersionKey FileDescription "${PORTABLEAPPNAME}"
  47. VIAddVersionKey FileVersion "${VER}"
  48. VIAddVersionKey ProductVersion "${VER}"
  49. VIAddVersionKey InternalName "${PORTABLEAPPNAME}"
  50. VIAddVersionKey LegalTrademarks "PortableApps.com is a Trademark of Rare Ideas, LLC."
  51. VIAddVersionKey OriginalFilename "${NAME}.exe"
  52. ;VIAddVersionKey PrivateBuild ""
  53. ;VIAddVersionKey SpecialBuild ""
  54.  
  55. ;=== Runtime Switches
  56. CRCCheck on
  57. WindowIcon off
  58. SilentInstall silent
  59. AutoCloseWindow true
  60. RequestExecutionLevel user
  61. XPStyle on
  62.  
  63. ; Best Compression
  64. SetCompress Auto
  65. SetCompressor /SOLID lzma
  66. SetCompressorDictSize 32
  67. SetDatablockOptimize On
  68.  
  69. ;=== Include
  70. ;(Standard NSIS)
  71. !include FileFunc.nsh
  72. !insertmacro GetParameters
  73. !insertmacro GetParent
  74. !insertmacro GetRoot
  75. !include Registry.nsh
  76.  
  77. ;(NSIS Plugins)
  78. !include TextReplace.nsh
  79.  
  80. ;(Custom)
  81. !include GetWindowsVersion.nsh
  82. !include ReplaceInFileWithTextReplace.nsh
  83. !include ReadINIStrWithDefault.nsh
  84.  
  85. ;=== Program Icon
  86. Icon "..\..\App\AppInfo\appicon.ico"
  87.  
  88. ;=== Icon & Stye ===
  89. ;!define MUI_ICON "..\..\App\AppInfo\appicon.ico"
  90.  
  91. ;=== Languages
  92. LoadLanguageFile "${NSISDIR}\Contrib\Language files\${LAUNCHERLANGUAGE}.nlf"
  93. !include PortableApps.comLauncherLANG_${LAUNCHERLANGUAGE}.nsh
  94.  
  95. Var PROGRAMDIRECTORY
  96. Var GTKDIRECTORY
  97. ;====== Change Made Var ASPELLDIRECTORY
  98. Var SETTINGSDIRECTORY
  99. Var ADDITIONALPARAMETERS
  100. Var EXECSTRING
  101. Var WAITFORPROGRAM
  102. Var PROGRAMEXECUTABLE
  103. Var DISABLESPLASHSCREEN
  104. ;==========Var ISDEFAULTDIRECTORY
  105. Var RedNotebookLANGUAGE
  106. Var WINDOWSVERSION
  107. Var MISSINGFILEORPATH
  108. Var EXISTSFILECHOOSER
  109. Var EXISTSXBEL
  110. Var USERPROFILE
  111. Var SECONDARYLAUNCH
  112.  
  113. Section "Main"
  114. ${ReadINIStrWithDefault} $ADDITIONALPARAMETERS "$EXEDIR\${NAME}.ini" "${NAME}" "AdditionalParameters" ""
  115. ${ReadINIStrWithDefault} $WAITFORPROGRAM "$EXEDIR\${NAME}.ini" "${NAME}" "WaitFor${APPNAME}" "false"
  116. ${ReadINIStrWithDefault} $DISABLESPLASHSCREEN "$EXEDIR\${NAME}.ini" "${NAME}" "DisableSplashScreen" "false"
  117.  
  118. IfFileExists "$EXEDIR\App\${DEFAULTAPPDIR}\${DEFAULTEXE}" "" NoProgramEXE
  119. StrCpy "$PROGRAMDIRECTORY" "$EXEDIR\App\${DEFAULTAPPDIR}"
  120. StrCpy "$GTKDIRECTORY" "$EXEDIR\App\${DEFAULTGTKDIR}"
  121. ; ========== Change Made StrCpy "$ASPELLDIRECTORY" "$EXEDIR\App\aspell"
  122. StrCpy "$SETTINGSDIRECTORY" "$EXEDIR\Data\${DEFAULTSETTINGSDIR}"
  123. ;=====StrCpy "$ISDEFAULTDIRECTORY" "true"
  124. StrCpy "$PROGRAMEXECUTABLE" "${DEFAULTEXE}"
  125.  
  126. ${GetWindowsVersion} $WINDOWSVERSION
  127. ; ======== StrCpy $WINDOWSVERSION $WINDOWSVERSION 2
  128.  
  129. ; ======StrCmp $WINDOWSVERSION '95' GTKLegacy
  130. ; ==========StrCmp $WINDOWSVERSION '98' GTKLegacy
  131. ; =====StrCmp $WINDOWSVERSION 'ME' GTKLegacy
  132. ;=========StrCmp $WINDOWSVERSION 'NT' GTKLegacy
  133.  
  134. ;=== Check GTK directory
  135. IfFileExists "$EXEDIR\App\${DEFAULTGTKDIR}\bin\*.*" "" GTKCommonFiles
  136. StrCpy $GTKDIRECTORY "$EXEDIR\App\${DEFAULTGTKDIR}"
  137. Goto EndINI
  138.  
  139. GTKCommonFiles:
  140. ${GetParent} "$EXEDIR" $0
  141. StrCpy $GTKDIRECTORY "$0\CommonFiles\GTK"
  142. GoTo EndINI
  143.  
  144. ;=======GTKLegacy:
  145. ;=== Check GTK directory
  146. ;======IfFileExists "$EXEDIR\App\${DEFAULTGTKDIR}Legacy\bin\*.*" "" GTKLegacyCommonFiles
  147. ; =========StrCpy $GTKDIRECTORY "$EXEDIR\App\${DEFAULTGTKDIR}Legacy"
  148. ;=====Goto EndINI
  149. GTKLegacyCommonFiles:
  150. ; ========${GetParent} "$EXEDIR" $0
  151. ;===StrCpy $GTKDIRECTORY "$0\CommonFiles\GTKLegacy"
  152. ;======GoTo EndINI
  153.  
  154. EndINI:
  155. ;=== Check if already running
  156. System::Call 'kernel32::CreateMutexA(i 0, i 0, t "${NAME}") i .r1 ?e'
  157. Pop $0
  158. StrCmp $0 0 CheckForEXE
  159. StrCpy $SECONDARYLAUNCH "true"
  160. StrCpy $DISABLESPLASHSCREEN "true"
  161.  
  162. CheckForEXE:
  163. IfFileExists "$GTKDIRECTORY\bin\*.*" "" GTKNotFound
  164. IfFileExists "$PROGRAMDIRECTORY\$PROGRAMEXECUTABLE" FoundProgramEXE
  165.  
  166. GTKNotFound:
  167. StrCpy $MISSINGFILEORPATH $GTKDIRECTORY
  168. MessageBox MB_OK|MB_ICONEXCLAMATION `$(LauncherFileNotFound)`
  169. Abort
  170.  
  171. NoProgramEXE:
  172. ;=== Program executable not where expected
  173. StrCpy $MISSINGFILEORPATH $PROGRAMEXECUTABLE
  174. MessageBox MB_OK|MB_ICONEXCLAMATION `$(LauncherFileNotFound)`
  175. Abort
  176.  
  177. FoundProgramEXE:
  178. StrCmp $DISABLESPLASHSCREEN "true" SkipSplashScreen
  179. ;=== Show the splash screen before processing the files
  180. InitPluginsDir
  181. File /oname=$PLUGINSDIR\splash.jpg "${NAME}.jpg"
  182. newadvsplash::show /NOUNLOAD 1500 0 0 -1 /L $PLUGINSDIR\splash.jpg
  183.  
  184. SkipSplashScreen:
  185. ;=== Get any passed parameters
  186. ${GetParameters} $0
  187. StrCmp "'$0'" "''" "" LaunchProgramParameters
  188.  
  189. ;=== No parameters
  190. StrCpy $EXECSTRING `"$PROGRAMDIRECTORY\$PROGRAMEXECUTABLE" -c "$SETTINGSDIRECTORY`
  191. MessageBox MB_OK "Arrived at EXECSTRING copy"
  192. Goto AdditionalParameters
  193.  
  194. LaunchProgramParameters:
  195. StrCpy $EXECSTRING `"$PROGRAMDIRECTORY\$PROGRAMEXECUTABLE" -c "$SETTINGSDIRECTORY\.HOME" $0`
  196.  
  197. AdditionalParameters:
  198. StrCmp $ADDITIONALPARAMETERS "" RedNotebookEnvironment
  199.  
  200. ;=== Additional Parameters
  201. StrCpy $EXECSTRING `$EXECSTRING $ADDITIONALPARAMETERS`
  202.  
  203. RedNotebookEnvironment:
  204. ;=== Set the %RedNotebookHOME% directory if we have a path
  205. StrCmp $SETTINGSDIRECTORY "" RedNotebookSettingsNotFound
  206. IfFileExists "$SETTINGSDIRECTORY\*.*" RedNotebookSettingsFound
  207.  
  208. RedNotebookSettingsNotFound:
  209. StrCmp $ISDEFAULTDIRECTORY "true" SetupDefaultSettings
  210. StrCpy $MISSINGFILEORPATH $SETTINGSDIRECTORY
  211. MessageBox MB_OK|MB_ICONEXCLAMATION `$(LauncherFileNotFound)`
  212. Abort
  213.  
  214. SetupDefaultSettings:
  215. CreateDirectory "$EXEDIR\Data\settings"
  216. CopyFiles /SILENT $EXEDIR\App\DefaultData\settings\*.* $EXEDIR\Data\settings
  217.  
  218. RedNotebookSettingsFound:
  219. System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("HOME", "$SETTINGSDIRECTORY").r0'
  220.  
  221. ;=== Add GTK to the %PATH% directory if we have a path, otherwise, skip it
  222. StrCpy $0 "$GTKDIRECTORY\bin;$PROGRAMDIRECTORY"
  223. System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("PATH", "$0").r0'
  224. System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("GTK_BASEPATH", "$GTKDIRECTORY").r0'
  225.  
  226. StrCmp $SECONDARYLAUNCH "true" LaunchAndExit
  227. ReadEnvStr $RedNotebookLANGUAGE "PortableApps.comLocaleglibc"
  228. StrCmp $RedNotebookLANGUAGE "" RedNotebookLanguageSettingsFile
  229. StrCmp $RedNotebookLANGUAGE "en_US" SetRedNotebookLanuageVariable
  230. IfFileExists "$PROGRAMDIRECTORY\locale\$RedNotebookLANGUAGE\*.*" SetRedNotebookLanuageVariable RedNotebookLanguageSettingsFile
  231.  
  232. RedNotebookLanguageSettingsFile:
  233. ReadINIStr $RedNotebookLANGUAGE "$SETTINGSDIRECTORY\${NAME}Settings.ini" "Language" "RedNotebookLANG"
  234. ClearErrors ;if any
  235. StrCmp $RedNotebookLANGUAGE "" AdjustSettings
  236. StrCmp $RedNotebookLANGUAGE "en_US" SetRedNotebookLanuageVariable
  237. IfFileExists "$PROGRAMDIRECTORY\locale\$RedNotebookLANGUAGE\*.*" SetRedNotebookLanuageVariable AdjustSettings
  238.  
  239. SetRedNotebookLanuageVariable:
  240. System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("RedNotebookLANG", "$RedNotebookLANGUAGE").r0'
  241.  
  242. AdjustSettings:
  243. ${GetRoot} $EXEDIR $0
  244. ReadINIStr $1 "$SETTINGSDIRECTORY\${NAME}Settings.ini" "${NAME}Settings" "LastDriveLetter"
  245. StrCmp $1 "" StoreCurrentDriveLetter
  246. ; ===========StrCmp $1 $0 AspellEnvironment
  247. ;==IfFileExists "$SETTINGSDIRECTORY\.purple\prefs.xml" "" StoreCurrentDriveLetter
  248. ;==${ReplaceInFile} "$SETTINGSDIRECTORY\.purple\prefs.xml" "'$1\" "'$0\"
  249. ;=====IfFileExists "$SETTINGSDIRECTORY\.purple\pounces.xml" "" StoreCurrentDriveLetter
  250. ;==========${ReplaceInFile} "$SETTINGSDIRECTORY\.purple\pounces.xml" ">$1\" ">$0\"
  251.  
  252. StoreCurrentDriveLetter:
  253. WriteINIStr "$SETTINGSDIRECTORY\${NAME}Settings.ini" "${NAME}Settings" "LastDriveLetter" "$0"
  254.  
  255. ;======AspellEnvironment:
  256. ;=====IfFileExists "$ASPELLDIRECTORY\bin\*.*" "" CheckForUserProfileFolders
  257. ;===== System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("RedNotebook_ASPELL_DIR", "$ASPELLDIRECTORY\bin").r0'
  258. ;====== System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("PURPLE_ASPELL_DIR", "$ASPELLDIRECTORY\bin").r0'
  259.  
  260. CheckForUserProfileFolders:
  261. ReadEnvStr $USERPROFILE "USERPROFILE"
  262. IfFileExists "$USERPROFILE\.recently-used.xbel" 0 +2
  263. StrCpy $EXISTSXBEL "true"
  264. IfFileExists "$APPDATA\gtk-2.0\gtkfilechooser.ini" 0 CheckForWait
  265. StrCpy $EXISTSFILECHOOSER "true"
  266.  
  267. CheckForWait:
  268. StrCmp "$EXISTSXBEL-$EXISTSFILECHOOSER" "true-true" LaunchNow
  269. StrCpy $WAITFORPROGRAM "true"
  270.  
  271. LaunchNow:
  272. MessageBox MB_OK '$execstring'
  273. System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("RedNotebook_NO_DLL_CHECK", "true").r0'
  274. ;===System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("GAIM_NO_DLL_CHECK", "true").r0'
  275. ;===System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("PURPLE_NO_DLL_CHECK", "true").r0'
  276. System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("RedNotebook_MULTI_INST", "1").r0'
  277. StrCmp $WAITFORPROGRAM "true" LaunchAndWait LaunchAndExit
  278.  
  279. LaunchAndWait:
  280. ExecWait $EXECSTRING
  281. Goto TheEnd
  282.  
  283. LaunchAndExit:
  284. Exec $EXECSTRING
  285. Goto TheRealEnd
  286.  
  287. TheEnd:
  288. StrCmp $EXISTSXBEL "true" +2
  289. Delete "$USERPROFILE\.recently-used.xbel"
  290. StrCmp $EXISTSFILECHOOSER "true" TheRealEnd
  291. Delete "$APPDATA\gtk-2.0\gtkfilechooser.ini"
  292. RmDir "$APPDATA\gtk-2.0\"
  293.  
  294. TheRealEnd:
  295. newadvsplash::stop /WAIT
  296. SectionEnd
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement