👍[Update] Model : Add Installer
This commit is contained in:
15
config.py
15
config.py
@@ -1,6 +1,8 @@
|
|||||||
import sys
|
import sys
|
||||||
import inspect
|
import inspect
|
||||||
from os import path as os_path
|
from os import path as os_path
|
||||||
|
from os import getenv as os_getenv
|
||||||
|
from os import makedirs as os_makedirs
|
||||||
from json import load as json_load
|
from json import load as json_load
|
||||||
from json import dump as json_dump
|
from json import dump as json_dump
|
||||||
import tkinter as tk
|
import tkinter as tk
|
||||||
@@ -39,10 +41,18 @@ class Config:
|
|||||||
def VERSION(self):
|
def VERSION(self):
|
||||||
return self._VERSION
|
return self._VERSION
|
||||||
|
|
||||||
|
@property
|
||||||
|
def LOCAL_PATH(self):
|
||||||
|
return self._LOCAL_PATH
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def PATH_CONFIG(self):
|
def PATH_CONFIG(self):
|
||||||
return self._PATH_CONFIG
|
return self._PATH_CONFIG
|
||||||
|
|
||||||
|
@property
|
||||||
|
def PATH_LOGS(self):
|
||||||
|
return self._PATH_LOGS
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def GITHUB_URL(self):
|
def GITHUB_URL(self):
|
||||||
return self._GITHUB_URL
|
return self._GITHUB_URL
|
||||||
@@ -520,7 +530,10 @@ class Config:
|
|||||||
def init_config(self):
|
def init_config(self):
|
||||||
# Read Only
|
# Read Only
|
||||||
self._VERSION = "2.0.0"
|
self._VERSION = "2.0.0"
|
||||||
self._PATH_CONFIG = os_path.join(os_path.dirname(sys.argv[0]), "config.json")
|
self._LOCAL_PATH = os_path.join(os_getenv('LOCALAPPDATA'), "VRCT")
|
||||||
|
self._PATH_CONFIG = os_path.join(self._LOCAL_PATH, "config.json")
|
||||||
|
self._PATH_LOGS = os_path.join(self._LOCAL_PATH, "logs")
|
||||||
|
os_makedirs(self._LOCAL_PATH, exist_ok=True)
|
||||||
self._GITHUB_URL = "https://api.github.com/repos/misyaguziya/VRCT/releases/latest"
|
self._GITHUB_URL = "https://api.github.com/repos/misyaguziya/VRCT/releases/latest"
|
||||||
self._BOOTH_URL = "https://misyaguziya.booth.pm/"
|
self._BOOTH_URL = "https://misyaguziya.booth.pm/"
|
||||||
self._DOCUMENTS_URL = "https://mzsoftware.notion.site/VRCT-Documents-be79b7a165f64442ad8f326d86c22246"
|
self._DOCUMENTS_URL = "https://mzsoftware.notion.site/VRCT-Documents-be79b7a165f64442ad8f326d86c22246"
|
||||||
|
|||||||
108
installer/Install.nsi
Normal file
108
installer/Install.nsi
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
# Modern UI
|
||||||
|
!include MUI2.nsh
|
||||||
|
# nsDialogs
|
||||||
|
!include nsDialogs.nsh
|
||||||
|
# LogicLib
|
||||||
|
!include LogicLib.nsh
|
||||||
|
|
||||||
|
# アプリケーション名
|
||||||
|
Name "VRCT Setup"
|
||||||
|
# 作成されるインストーラ
|
||||||
|
OutFile "VRCT_Setup.exe"
|
||||||
|
|
||||||
|
RequestExecutionLevel admin
|
||||||
|
ShowInstDetails show
|
||||||
|
|
||||||
|
# 圧縮メソッド
|
||||||
|
SetCompressor lzma
|
||||||
|
# インストールされるディレクトリ
|
||||||
|
InstallDir "$PROGRAMFILES\VRCT"
|
||||||
|
# XPマニフェスト
|
||||||
|
XPStyle on
|
||||||
|
# ページ
|
||||||
|
!insertmacro MUI_PAGE_WELCOME
|
||||||
|
!insertmacro MUI_PAGE_DIRECTORY
|
||||||
|
Page custom OptionPage OptionPageLeave
|
||||||
|
!insertmacro MUI_PAGE_INSTFILES
|
||||||
|
!insertmacro MUI_PAGE_FINISH
|
||||||
|
# アンインストーラ ページ
|
||||||
|
!insertmacro MUI_UNPAGE_WELCOME
|
||||||
|
!insertmacro MUI_UNPAGE_CONFIRM
|
||||||
|
!insertmacro MUI_UNPAGE_INSTFILES
|
||||||
|
!insertmacro MUI_UNPAGE_FINISH
|
||||||
|
# 日本語UI
|
||||||
|
!insertmacro MUI_LANGUAGE "Japanese"
|
||||||
|
# インターフェース 設定
|
||||||
|
!define MUI_ABORTWARNING
|
||||||
|
# 変数
|
||||||
|
Var Checkbox_InstallDocs
|
||||||
|
Var Dialog_Options
|
||||||
|
Var InstallDocs
|
||||||
|
Var Label_DescriptionOptions
|
||||||
|
|
||||||
|
# 初期化時コールバック
|
||||||
|
Function .onInit
|
||||||
|
# オプション値を初期化します。
|
||||||
|
StrCpy $InstallDocs ${BST_CHECKED}
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
# オプション ページ
|
||||||
|
Function OptionPage
|
||||||
|
# nsDialogsを作成します。
|
||||||
|
nsDialogs::Create 1018
|
||||||
|
# 作成されたnsDialogsを変数に代入します。
|
||||||
|
Pop $Dialog_Options
|
||||||
|
|
||||||
|
${If} $Dialog_Options == error
|
||||||
|
# ダイアログの作成に失敗した場合には終了します。
|
||||||
|
Abort
|
||||||
|
${EndIf}
|
||||||
|
|
||||||
|
# ラベルを作成します。
|
||||||
|
${NSD_CreateLabel} 0 0 100% 12u "オプションを選択してください。"
|
||||||
|
# ラベルを変数に代入します。
|
||||||
|
Pop $Label_DescriptionOptions
|
||||||
|
|
||||||
|
${NSD_CreateCheckbox} 0 13u 100% 12u "ドキュメントをインストールする(&D)"
|
||||||
|
Pop $Checkbox_InstallDocs
|
||||||
|
|
||||||
|
${If} $InstallDocs == ${BST_CHECKED}
|
||||||
|
# チェックが入力済の場合、チェックボックスにチェックを入れます。
|
||||||
|
${NSD_Check} $Checkbox_InstallDocs
|
||||||
|
${EndIf}
|
||||||
|
nsDialogs::Show
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
# オプション ページ退出コールバック
|
||||||
|
Function OptionPageLeave
|
||||||
|
${NSD_GetState} $Checkbox_InstallDocs $InstallDocs
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
# デフォルト セクション
|
||||||
|
Section
|
||||||
|
# 出力先を指定します。
|
||||||
|
SetOutPath "$INSTDIR"
|
||||||
|
# インストールされるファイル
|
||||||
|
File "..\dist\VRCT.exe"
|
||||||
|
|
||||||
|
${If} $InstallDocs == ${BST_CHECKED}
|
||||||
|
# ドキュメントをインストールする場合
|
||||||
|
# 出力先を指定します。
|
||||||
|
SetOutPath "$INSTDIR\docs"
|
||||||
|
# インストールされるファイル
|
||||||
|
File "..\dist\README.txt"
|
||||||
|
${EndIf}
|
||||||
|
|
||||||
|
# アンインストーラを出力
|
||||||
|
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
||||||
|
# スタート メニューにショートカットを登録
|
||||||
|
CreateDirectory "$SMPROGRAMS\VRCT"
|
||||||
|
SetOutPath "$INSTDIR"
|
||||||
|
CreateShortcut "$SMPROGRAMS\VRCT\VRCT.lnk" "$INSTDIR\VRCT.exe" ""
|
||||||
|
# レジストリに登録
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VRCT" "DisplayName" "VRCT"
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VRCT" "UninstallString" '"$INSTDIR\Uninstall.exe"'
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
# アンインストーラ
|
||||||
|
!include Uninstall.nsi
|
||||||
14
installer/Uninstall.nsi
Normal file
14
installer/Uninstall.nsi
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# アンインストーラ
|
||||||
|
Section "Uninstall"
|
||||||
|
# アンインストーラを削除
|
||||||
|
Delete "$INSTDIR\Uninstall.exe"
|
||||||
|
# ファイルを削除
|
||||||
|
Delete "$INSTDIR\VRCT.exe"
|
||||||
|
# ディレクトリを削除
|
||||||
|
RMDir /r "$INSTDIR"
|
||||||
|
# スタート メニューから削除
|
||||||
|
Delete "$SMPROGRAMS\VRCT\VRCT.lnk"
|
||||||
|
RMDir "$SMPROGRAMS\VRCT"
|
||||||
|
# レジストリ キーを削除
|
||||||
|
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VRCT"
|
||||||
|
SectionEnd
|
||||||
4
model.py
4
model.py
@@ -91,10 +91,10 @@ class Model:
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
def startLogger(self):
|
def startLogger(self):
|
||||||
os_makedirs(os_path.join(os_path.dirname(sys.argv[0]), "logs"), exist_ok=True)
|
os_makedirs(config.PATH_LOGS, exist_ok=True)
|
||||||
logger = getLogger()
|
logger = getLogger()
|
||||||
logger.setLevel(INFO)
|
logger.setLevel(INFO)
|
||||||
file_name = os_path.join(os_path.dirname(sys.argv[0]), "logs", f"{datetime.now().strftime('%Y-%m-%d_%H-%M-%S')}.log")
|
file_name = os_path.join(config.PATH_LOGS, f"{datetime.now().strftime('%Y-%m-%d_%H-%M-%S')}.log")
|
||||||
file_handler = FileHandler(file_name, encoding="utf-8", delay=True)
|
file_handler = FileHandler(file_name, encoding="utf-8", delay=True)
|
||||||
formatter = Formatter("[%(asctime)s] %(message)s")
|
formatter = Formatter("[%(asctime)s] %(message)s")
|
||||||
file_handler.setFormatter(formatter)
|
file_handler.setFormatter(formatter)
|
||||||
|
|||||||
Reference in New Issue
Block a user