################################################################################ # 俺のEclipse Installer Script # # @author Satoshi Nagashiba ################################################################################ #------------------------------------------------------------------------------- # 圧縮 #------------------------------------------------------------------------------- #SetCompressor bzip2 SetCompressor lzma #------------------------------------------------------------------------------- # 定義 #------------------------------------------------------------------------------- !define PRODUCT_NAME "eclipse" !define PRODUCT_TITLE_NAME "俺のEclipse" !define PRODUCT_DISPLAY_NAME "Eclipse" !define PRODUCT_VERSION "3.3.2" !define PRODUCT_DIRECTORY "${PRODUCT_NAME}\${PRODUCT_VERSION}" !define PRODUCT_WEB_SITE "http://ore-no-eclipse.sourceforge.jp/" !define PRODUCT_WEB_SITE_LINK "${PRODUCT_TITLE_NAME} ウェブページ.lnk" !define PRODUCT_PUBLISHER "Satoshi Nagashiba" !define PRODUCT_REG_KEY "SOFTWARE\${PRODUCT_DIRECTORY}" !define PRODUCT_UNINST_KEY "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_DIRECTORY}" !define PRODUCT_INSTALLER "ore-no-eclipse-${PRODUCT_VERSION}-install.exe" #------------------------------------------------------------------------------- #インストールするアプリケーションフォルダ #------------------------------------------------------------------------------- !define PRODUCT_APPLICATION_DIRECTORY "C:\Work\Tool\eclipse\install\eclipse" #------------------------------------------------------------------------------- # MUI 定義 #------------------------------------------------------------------------------- !define MUI_ABORTWARNING !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install-colorful.ico" !define MUI_STARTMENUPAGE_REGISTRY_ROOT HKLM !define MUI_STARTMENUPAGE_NODISABLE !define MUI_STARTMENUPAGE_REGISTRY_KEY ${PRODUCT_REG_KEY} !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME StartMenuGroup !define MUI_STARTMENUPAGE_DEFAULTFOLDER "${PRODUCT_DISPLAY_NAME}\${PRODUCT_VERSION}" !define MUI_FINISHPAGE_RUN "$INSTDIR\eclipse.exe -clean.cmd" !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall-colorful.ico" #------------------------------------------------------------------------------- # インクルード・ファイル #------------------------------------------------------------------------------- !include Sections.nsh !include MUI.nsh #------------------------------------------------------------------------------- # 変数 #------------------------------------------------------------------------------- Var StartMenuGroup #------------------------------------------------------------------------------- # インストーラー・ページ #------------------------------------------------------------------------------- !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_STARTMENU Application $StartMenuGroup !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES #------------------------------------------------------------------------------- # インストーラー言語 #------------------------------------------------------------------------------- !insertmacro MUI_LANGUAGE Japanese #------------------------------------------------------------------------------- # インストーラー属性 #------------------------------------------------------------------------------- Name "${PRODUCT_TITLE_NAME} ${PRODUCT_VERSION}" OutFile ${PRODUCT_INSTALLER} InstallDir $PROGRAMFILES\${PRODUCT_DIRECTORY} CRCCheck on XPStyle on ShowInstDetails show VIProductVersion ${PRODUCT_VERSION}.0 VIAddVersionKey /LANG=${LANG_JAPANESE} ProductName ${PRODUCT_TITLE_NAME} VIAddVersionKey /LANG=${LANG_JAPANESE} ProductVersion "${PRODUCT_VERSION}" VIAddVersionKey /LANG=${LANG_JAPANESE} FileVersion "${PRODUCT_VERSION}" VIAddVersionKey /LANG=${LANG_JAPANESE} FileDescription "" VIAddVersionKey /LANG=${LANG_JAPANESE} LegalCopyright "" InstallDirRegKey HKLM "${PRODUCT_REG_KEY}" Path ShowUninstDetails show #------------------------------------------------------------------------------- # インストーラー・セクション #------------------------------------------------------------------------------- Section -Main SEC0000 SetOutPath $INSTDIR SetOverwrite on File ${PRODUCT_APPLICATION_DIRECTORY}\.eclipseproduct File ${PRODUCT_APPLICATION_DIRECTORY}\eclipse.exe File "${PRODUCT_APPLICATION_DIRECTORY}\eclipse.exe -clean.cmd" File ${PRODUCT_APPLICATION_DIRECTORY}\eclipse.ini File ${PRODUCT_APPLICATION_DIRECTORY}\eclipsec.exe File ${PRODUCT_APPLICATION_DIRECTORY}\epl-v10.html File ${PRODUCT_APPLICATION_DIRECTORY}\notice.html SetOutPath $INSTDIR\configuration File /r ${PRODUCT_APPLICATION_DIRECTORY}\configuration\* SetOutPath $INSTDIR\features File /r ${PRODUCT_APPLICATION_DIRECTORY}\features\* SetOutPath $INSTDIR\plugins File /r ${PRODUCT_APPLICATION_DIRECTORY}\plugins\* SetOutPath $INSTDIR\readme File /r ${PRODUCT_APPLICATION_DIRECTORY}\readme\* WriteRegStr HKLM "${PRODUCT_REG_KEY}\Components" Main 1 SectionEnd Section -post SEC0001 WriteRegStr HKLM "${PRODUCT_REG_KEY}" Path $INSTDIR SetOutPath $INSTDIR WriteUninstaller $INSTDIR\uninstall.exe !insertmacro MUI_STARTMENU_WRITE_BEGIN Application WriteIniStr "$INSTDIR\${PRODUCT_TITLE_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" CreateDirectory "$SMPROGRAMS\$StartMenuGroup" CreateShortCut "$SMPROGRAMS\$StartMenuGroup\${PRODUCT_DISPLAY_NAME} ${PRODUCT_VERSION}.lnk" "$INSTDIR\eclipse.exe" CreateShortCut "$SMPROGRAMS\$StartMenuGroup\${PRODUCT_WEB_SITE_LINK}" "$INSTDIR\${PRODUCT_TITLE_NAME}.url" CreateShortcut "$SMPROGRAMS\$StartMenuGroup\アンインストール.lnk" $INSTDIR\uninstall.exe CreateShortCut "$DESKTOP\${PRODUCT_DISPLAY_NAME} ${PRODUCT_VERSION}.lnk" "$INSTDIR\eclipse.exe" !insertmacro MUI_STARTMENU_WRITE_END WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" DisplayName "${PRODUCT_TITLE_NAME}" WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" DisplayVersion "${PRODUCT_VERSION}" WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" DisplayIcon $INSTDIR\uninstall.exe WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" UninstallString $INSTDIR\uninstall.exe WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" URLInfoAbout "${PRODUCT_WEB_SITE}" WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" Publisher "${PRODUCT_PUBLISHER}" WriteRegDWORD HKLM "${PRODUCT_UNINST_KEY}" NoModify 1 WriteRegDWORD HKLM "${PRODUCT_UNINST_KEY}" NoRepair 1 SectionEnd #------------------------------------------------------------------------------- # 選択アンインストーラー・セクションのマクロ #------------------------------------------------------------------------------- !macro SELECT_UNSECTION SECTION_NAME UNSECTION_ID Push $R0 ReadRegStr $R0 HKLM "${PRODUCT_REG_KEY}\Components" "${SECTION_NAME}" StrCmp $R0 1 0 next${UNSECTION_ID} !insertmacro SelectSection "${UNSECTION_ID}" GoTo done${UNSECTION_ID} next${UNSECTION_ID}: !insertmacro UnselectSection "${UNSECTION_ID}" done${UNSECTION_ID}: Pop $R0 !macroend #------------------------------------------------------------------------------- # アンインストーラー・セクション #------------------------------------------------------------------------------- Section /o -un.Main UNSEC0000 RmDir /r /REBOOTOK $INSTDIR DeleteRegValue HKLM "${PRODUCT_REG_KEY}\Components" Main SectionEnd Section -un.post UNSEC0001 DeleteRegKey HKLM "${PRODUCT_UNINST_KEY}" Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\${PRODUCT_DISPLAY_NAME} ${PRODUCT_VERSION}.lnk" Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\${PRODUCT_WEB_SITE_LINK}" Delete /REBOOTOK "$SMPROGRAMS\$StartMenuGroup\アンインストール.lnk" Delete /REBOOTOK "$DESKTOP\${PRODUCT_DISPLAY_NAME} ${PRODUCT_VERSION}.lnk" Delete /REBOOTOK $INSTDIR\uninstall.exe DeleteRegValue HKLM "${PRODUCT_REG_KEY}" StartMenuGroup DeleteRegValue HKLM "${PRODUCT_REG_KEY}" Path DeleteRegKey /IfEmpty HKLM "${PRODUCT_REG_KEY}\Components" DeleteRegKey /IfEmpty HKLM "${PRODUCT_REG_KEY}" RmDir /REBOOTOK $SMPROGRAMS\$StartMenuGroup RmDir /REBOOTOK $INSTDIR SectionEnd #------------------------------------------------------------------------------- # インストーラー関数 #------------------------------------------------------------------------------- Function .onInit InitPluginsDir FunctionEnd #------------------------------------------------------------------------------- # アンインストーラー関数 #------------------------------------------------------------------------------- Function un.onInit ReadRegStr $INSTDIR HKLM "${PRODUCT_REG_KEY}" Path !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuGroup !insertmacro SELECT_UNSECTION Main ${UNSEC0000} FunctionEnd