Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;TODO ADD SECONDARY LAUNCH ALA GIMP
- ;Copyright (C) 2004-2009 John T. Haller
- ;Website: http://PortableApps.com/RedNotebookPortable
- ;This software is OSI Certified Open Source Software.
- ;OSI Certified is a certification mark of the Open Source Initiative.
- ;This program is free software; you can redistribute it and/or
- ;modify it under the terms of the GNU General Public License
- ;as published by the Free Software Foundation; either version 2
- ;of the License, or (at your option) any later version.
- ;This program is distributed in the hope that it will be useful,
- ;but WITHOUT ANY WARRANTY; without even the implied warranty of
- ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ;GNU General Public License for more details.
- ;You should have received a copy of the GNU General Public License
- ;along with this program; if not, write to the Free Software
- ;Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- !define NAME "RedNotebookPortable"
- !define PORTABLEAPPNAME "RedNotebook Portable"
- !define APPNAME "RedNotebook"
- !define VER "0.0.9.3"
- !define WEBSITE "PortableApps.com/RedNotebookPortable"
- !define DEFAULTEXE "rednotebook.exe"
- !define DEFAULTAPPDIR "RedNotebook"
- ; =============== Change Made
- !define DEFAULTGTKDIR "rednotebook"
- !define DEFAULTSETTINGSDIR "RedNotebook"
- !define LAUNCHERLANGUAGE "English"
- ;=== Program Details
- Name "${PORTABLEAPPNAME}"
- OutFile "..\..\${NAME}.exe"
- Caption "${PORTABLEAPPNAME} | PortableApps.com"
- VIProductVersion "${VER}"
- VIAddVersionKey ProductName "${PORTABLEAPPNAME}"
- VIAddVersionKey Comments "Allows ${APPNAME} to be run from a removable drive. For additional details, visit ${WEBSITE}"
- VIAddVersionKey CompanyName "PortableApps.com"
- VIAddVersionKey LegalCopyright "John T. Haller"
- VIAddVersionKey FileDescription "${PORTABLEAPPNAME}"
- VIAddVersionKey FileVersion "${VER}"
- VIAddVersionKey ProductVersion "${VER}"
- VIAddVersionKey InternalName "${PORTABLEAPPNAME}"
- VIAddVersionKey LegalTrademarks "PortableApps.com is a Trademark of Rare Ideas, LLC."
- VIAddVersionKey OriginalFilename "${NAME}.exe"
- ;VIAddVersionKey PrivateBuild ""
- ;VIAddVersionKey SpecialBuild ""
- ;=== Runtime Switches
- CRCCheck on
- WindowIcon off
- SilentInstall silent
- AutoCloseWindow true
- RequestExecutionLevel user
- XPStyle on
- ; Best Compression
- SetCompress Auto
- SetCompressor /SOLID lzma
- SetCompressorDictSize 32
- SetDatablockOptimize On
- ;=== Include
- ;(Standard NSIS)
- !include FileFunc.nsh
- !insertmacro GetParameters
- !insertmacro GetParent
- !insertmacro GetRoot
- !include Registry.nsh
- ;(NSIS Plugins)
- !include TextReplace.nsh
- ;(Custom)
- !include GetWindowsVersion.nsh
- !include ReplaceInFileWithTextReplace.nsh
- !include ReadINIStrWithDefault.nsh
- ;=== Program Icon
- Icon "..\..\App\AppInfo\appicon.ico"
- ;=== Icon & Stye ===
- ;!define MUI_ICON "..\..\App\AppInfo\appicon.ico"
- ;=== Languages
- LoadLanguageFile "${NSISDIR}\Contrib\Language files\${LAUNCHERLANGUAGE}.nlf"
- !include PortableApps.comLauncherLANG_${LAUNCHERLANGUAGE}.nsh
- Var PROGRAMDIRECTORY
- Var GTKDIRECTORY
- ;====== Change Made Var ASPELLDIRECTORY
- Var SETTINGSDIRECTORY
- Var ADDITIONALPARAMETERS
- Var EXECSTRING
- Var WAITFORPROGRAM
- Var PROGRAMEXECUTABLE
- Var DISABLESPLASHSCREEN
- ;==========Var ISDEFAULTDIRECTORY
- Var RedNotebookLANGUAGE
- Var WINDOWSVERSION
- Var MISSINGFILEORPATH
- Var EXISTSFILECHOOSER
- Var EXISTSXBEL
- Var USERPROFILE
- Var SECONDARYLAUNCH
- Section "Main"
- ${ReadINIStrWithDefault} $ADDITIONALPARAMETERS "$EXEDIR\${NAME}.ini" "${NAME}" "AdditionalParameters" ""
- ${ReadINIStrWithDefault} $WAITFORPROGRAM "$EXEDIR\${NAME}.ini" "${NAME}" "WaitFor${APPNAME}" "false"
- ${ReadINIStrWithDefault} $DISABLESPLASHSCREEN "$EXEDIR\${NAME}.ini" "${NAME}" "DisableSplashScreen" "false"
- IfFileExists "$EXEDIR\App\${DEFAULTAPPDIR}\${DEFAULTEXE}" "" NoProgramEXE
- StrCpy "$PROGRAMDIRECTORY" "$EXEDIR\App\${DEFAULTAPPDIR}"
- StrCpy "$GTKDIRECTORY" "$EXEDIR\App\${DEFAULTGTKDIR}"
- ; ========== Change Made StrCpy "$ASPELLDIRECTORY" "$EXEDIR\App\aspell"
- StrCpy "$SETTINGSDIRECTORY" "$EXEDIR\Data\${DEFAULTSETTINGSDIR}"
- ;=====StrCpy "$ISDEFAULTDIRECTORY" "true"
- StrCpy "$PROGRAMEXECUTABLE" "${DEFAULTEXE}"
- ${GetWindowsVersion} $WINDOWSVERSION
- ; ======== StrCpy $WINDOWSVERSION $WINDOWSVERSION 2
- ; ======StrCmp $WINDOWSVERSION '95' GTKLegacy
- ; ==========StrCmp $WINDOWSVERSION '98' GTKLegacy
- ; =====StrCmp $WINDOWSVERSION 'ME' GTKLegacy
- ;=========StrCmp $WINDOWSVERSION 'NT' GTKLegacy
- ;=== Check GTK directory
- IfFileExists "$EXEDIR\App\${DEFAULTGTKDIR}\bin\*.*" "" GTKCommonFiles
- StrCpy $GTKDIRECTORY "$EXEDIR\App\${DEFAULTGTKDIR}"
- Goto EndINI
- GTKCommonFiles:
- ${GetParent} "$EXEDIR" $0
- StrCpy $GTKDIRECTORY "$0\CommonFiles\GTK"
- GoTo EndINI
- ;=======GTKLegacy:
- ;=== Check GTK directory
- ;======IfFileExists "$EXEDIR\App\${DEFAULTGTKDIR}Legacy\bin\*.*" "" GTKLegacyCommonFiles
- ; =========StrCpy $GTKDIRECTORY "$EXEDIR\App\${DEFAULTGTKDIR}Legacy"
- ;=====Goto EndINI
- GTKLegacyCommonFiles:
- ; ========${GetParent} "$EXEDIR" $0
- ;===StrCpy $GTKDIRECTORY "$0\CommonFiles\GTKLegacy"
- ;======GoTo EndINI
- EndINI:
- ;=== Check if already running
- System::Call 'kernel32::CreateMutexA(i 0, i 0, t "${NAME}") i .r1 ?e'
- Pop $0
- StrCmp $0 0 CheckForEXE
- StrCpy $SECONDARYLAUNCH "true"
- StrCpy $DISABLESPLASHSCREEN "true"
- CheckForEXE:
- IfFileExists "$GTKDIRECTORY\bin\*.*" "" GTKNotFound
- IfFileExists "$PROGRAMDIRECTORY\$PROGRAMEXECUTABLE" FoundProgramEXE
- GTKNotFound:
- StrCpy $MISSINGFILEORPATH $GTKDIRECTORY
- MessageBox MB_OK|MB_ICONEXCLAMATION `$(LauncherFileNotFound)`
- Abort
- NoProgramEXE:
- ;=== Program executable not where expected
- StrCpy $MISSINGFILEORPATH $PROGRAMEXECUTABLE
- MessageBox MB_OK|MB_ICONEXCLAMATION `$(LauncherFileNotFound)`
- Abort
- FoundProgramEXE:
- StrCmp $DISABLESPLASHSCREEN "true" SkipSplashScreen
- ;=== Show the splash screen before processing the files
- InitPluginsDir
- File /oname=$PLUGINSDIR\splash.jpg "${NAME}.jpg"
- newadvsplash::show /NOUNLOAD 1500 0 0 -1 /L $PLUGINSDIR\splash.jpg
- SkipSplashScreen:
- ;=== Get any passed parameters
- ${GetParameters} $0
- StrCmp "'$0'" "''" "" LaunchProgramParameters
- ;=== No parameters
- StrCpy $EXECSTRING `"$PROGRAMDIRECTORY\$PROGRAMEXECUTABLE" -c "$SETTINGSDIRECTORY`
- MessageBox MB_OK "Arrived at EXECSTRING copy"
- Goto AdditionalParameters
- LaunchProgramParameters:
- StrCpy $EXECSTRING `"$PROGRAMDIRECTORY\$PROGRAMEXECUTABLE" -c "$SETTINGSDIRECTORY\.HOME" $0`
- AdditionalParameters:
- StrCmp $ADDITIONALPARAMETERS "" RedNotebookEnvironment
- ;=== Additional Parameters
- StrCpy $EXECSTRING `$EXECSTRING $ADDITIONALPARAMETERS`
- RedNotebookEnvironment:
- ;=== Set the %RedNotebookHOME% directory if we have a path
- StrCmp $SETTINGSDIRECTORY "" RedNotebookSettingsNotFound
- IfFileExists "$SETTINGSDIRECTORY\*.*" RedNotebookSettingsFound
- RedNotebookSettingsNotFound:
- StrCmp $ISDEFAULTDIRECTORY "true" SetupDefaultSettings
- StrCpy $MISSINGFILEORPATH $SETTINGSDIRECTORY
- MessageBox MB_OK|MB_ICONEXCLAMATION `$(LauncherFileNotFound)`
- Abort
- SetupDefaultSettings:
- CreateDirectory "$EXEDIR\Data\settings"
- CopyFiles /SILENT $EXEDIR\App\DefaultData\settings\*.* $EXEDIR\Data\settings
- RedNotebookSettingsFound:
- System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("HOME", "$SETTINGSDIRECTORY").r0'
- ;=== Add GTK to the %PATH% directory if we have a path, otherwise, skip it
- StrCpy $0 "$GTKDIRECTORY\bin;$PROGRAMDIRECTORY"
- System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("PATH", "$0").r0'
- System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("GTK_BASEPATH", "$GTKDIRECTORY").r0'
- StrCmp $SECONDARYLAUNCH "true" LaunchAndExit
- ReadEnvStr $RedNotebookLANGUAGE "PortableApps.comLocaleglibc"
- StrCmp $RedNotebookLANGUAGE "" RedNotebookLanguageSettingsFile
- StrCmp $RedNotebookLANGUAGE "en_US" SetRedNotebookLanuageVariable
- IfFileExists "$PROGRAMDIRECTORY\locale\$RedNotebookLANGUAGE\*.*" SetRedNotebookLanuageVariable RedNotebookLanguageSettingsFile
- RedNotebookLanguageSettingsFile:
- ReadINIStr $RedNotebookLANGUAGE "$SETTINGSDIRECTORY\${NAME}Settings.ini" "Language" "RedNotebookLANG"
- ClearErrors ;if any
- StrCmp $RedNotebookLANGUAGE "" AdjustSettings
- StrCmp $RedNotebookLANGUAGE "en_US" SetRedNotebookLanuageVariable
- IfFileExists "$PROGRAMDIRECTORY\locale\$RedNotebookLANGUAGE\*.*" SetRedNotebookLanuageVariable AdjustSettings
- SetRedNotebookLanuageVariable:
- System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("RedNotebookLANG", "$RedNotebookLANGUAGE").r0'
- AdjustSettings:
- ${GetRoot} $EXEDIR $0
- ReadINIStr $1 "$SETTINGSDIRECTORY\${NAME}Settings.ini" "${NAME}Settings" "LastDriveLetter"
- StrCmp $1 "" StoreCurrentDriveLetter
- ; ===========StrCmp $1 $0 AspellEnvironment
- ;==IfFileExists "$SETTINGSDIRECTORY\.purple\prefs.xml" "" StoreCurrentDriveLetter
- ;==${ReplaceInFile} "$SETTINGSDIRECTORY\.purple\prefs.xml" "'$1\" "'$0\"
- ;=====IfFileExists "$SETTINGSDIRECTORY\.purple\pounces.xml" "" StoreCurrentDriveLetter
- ;==========${ReplaceInFile} "$SETTINGSDIRECTORY\.purple\pounces.xml" ">$1\" ">$0\"
- StoreCurrentDriveLetter:
- WriteINIStr "$SETTINGSDIRECTORY\${NAME}Settings.ini" "${NAME}Settings" "LastDriveLetter" "$0"
- ;======AspellEnvironment:
- ;=====IfFileExists "$ASPELLDIRECTORY\bin\*.*" "" CheckForUserProfileFolders
- ;===== System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("RedNotebook_ASPELL_DIR", "$ASPELLDIRECTORY\bin").r0'
- ;====== System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("PURPLE_ASPELL_DIR", "$ASPELLDIRECTORY\bin").r0'
- CheckForUserProfileFolders:
- ReadEnvStr $USERPROFILE "USERPROFILE"
- IfFileExists "$USERPROFILE\.recently-used.xbel" 0 +2
- StrCpy $EXISTSXBEL "true"
- IfFileExists "$APPDATA\gtk-2.0\gtkfilechooser.ini" 0 CheckForWait
- StrCpy $EXISTSFILECHOOSER "true"
- CheckForWait:
- StrCmp "$EXISTSXBEL-$EXISTSFILECHOOSER" "true-true" LaunchNow
- StrCpy $WAITFORPROGRAM "true"
- LaunchNow:
- MessageBox MB_OK '$execstring'
- System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("RedNotebook_NO_DLL_CHECK", "true").r0'
- ;===System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("GAIM_NO_DLL_CHECK", "true").r0'
- ;===System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("PURPLE_NO_DLL_CHECK", "true").r0'
- System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("RedNotebook_MULTI_INST", "1").r0'
- StrCmp $WAITFORPROGRAM "true" LaunchAndWait LaunchAndExit
- LaunchAndWait:
- ExecWait $EXECSTRING
- Goto TheEnd
- LaunchAndExit:
- Exec $EXECSTRING
- Goto TheRealEnd
- TheEnd:
- StrCmp $EXISTSXBEL "true" +2
- Delete "$USERPROFILE\.recently-used.xbel"
- StrCmp $EXISTSFILECHOOSER "true" TheRealEnd
- Delete "$APPDATA\gtk-2.0\gtkfilechooser.ini"
- RmDir "$APPDATA\gtk-2.0\"
- TheRealEnd:
- newadvsplash::stop /WAIT
- SectionEnd
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement