-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsetup.cmd
139 lines (109 loc) · 3.56 KB
/
setup.cmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
@echo off
setlocal
:: About: Setup xconfig.
:: Working directory is script directory.
cd /d "%~dp0"
:: Get root directory.
set /p "root=Root directory of notepad++.exe: " || exit /b 1
set "root=%root:"=%"
:: Check root directory contains notepad++.exe.
if not exist "%root%\notepad++.exe" (
>&2 echo File notepad++.exe not found
exit /b 1
)
:: Set paths and display them.
set "PythonScriptDir=%root%\plugins\PythonScript"
if exist "%root%\doLocalConf.xml" (
echo Portable configuration detected
set "ConfigDir=%root%\plugins\Config"
) else (
echo Install configuration detected
set "ConfigDir=%AppData%\plugins\Config"
)
echo Dirs to use:
echo Config: "%ConfigDir%"
echo PythonScript: "%PythonScriptDir%"
:: Get confirmation to continue.
set /p "reply=Continue? [n|y]: " || exit /b 1
if not "%reply%" == "y" exit /b 0
:: Check PythonScript is installed.
if not exist "%PythonScriptDir%\PythonScript.dll" (
>&2 echo Require PythonScript
exit /b 1
)
:: Check startup.py exist.
if not exist "%PythonScriptDir%\scripts\startup.py" (
>&2 echo File startup.py not found
exit /b 1
)
:: Make directories.
if not exist "%ConfigDir%\PythonScript\lib" (
md "%ConfigDir%\PythonScript\lib"
)
if not exist "%ConfigDir%\PythonScript\scripts" (
md "%ConfigDir%\PythonScript\scripts"
)
:: Copy files.
if exist "xconfig.properties" (
if not exist "%ConfigDir%\xconfig.properties" (
echo Copy "xconfig.properties"
copy "xconfig.properties" "%ConfigDir%\xconfig.properties"
)
)
if exist "xconfig.py" (
if not exist "%ConfigDir%\PythonScript\lib\xconfig.py" (
echo Copy "xconfig.py"
copy "xconfig.py" "%ConfigDir%\PythonScript\lib\xconfig.py"
)
)
if exist "ToggleChangeHistory.py" (
if not exist "%ConfigDir%\PythonScript\scripts\ToggleChangeHistory.py" (
echo Copy "ToggleChangeHistory.py"
copy "ToggleChangeHistory.py" "%ConfigDir%\PythonScript\scripts\ToggleChangeHistory.py"
)
)
if exist "XConfigUI.py" (
if not exist "%ConfigDir%\PythonScript\scripts\XConfigUI.py" (
echo Copy "XConfigUI.py"
copy "XConfigUI.py" "%ConfigDir%\PythonScript\scripts\XConfigUI.py"
)
)
:: Check if startup.py needs to be updated.
set "string=import xconfig"
findstr /c:"%string%" "%PythonScriptDir%\scripts\startup.py" 2>nul >nul
if errorlevel 1 (
findstr /c:"%string%" "%ConfigDir%\PythonScript\scripts\startup.py" 2>nul >nul
)
if errorlevel 1 (
echo Update users startup.py to import xconfig.py
(
echo:
echo try:
echo import xconfig
echo except ImportError:
echo pass
) >> "%ConfigDir%\PythonScript\scripts\startup.py"
)
:: Check if startup.py sets the callback.
set "string=notepad.callback(xconfig.reload,"
findstr /c:"%string%" "%PythonScriptDir%\scripts\startup.py" 2>nul >nul
if not errorlevel 1 (
echo User needs to remove callback in startup.py as xconfig.py has the callback
)
findstr /c:"%string%" "%ConfigDir%\PythonScript\scripts\startup.py" 2>nul >nul
if not errorlevel 1 (
echo User needs to remove callback in users startup.py as xconfig has the callback
)
:: Set PythonScript to run at Notepad++ startup.
if not exist "%ConfigDir%\PythonScriptStartup.cnf" (
echo Create "PythonScriptStartup.cnf" to run ATSTARTUP
(
echo SETTING/STARTUP/ATSTARTUP
) > "%ConfigDir%\PythonScriptStartup.cnf"
) else (
findstr /c:"SETTING/STARTUP/ATSTARTUP" "%ConfigDir%\PythonScriptStartup.cnf" 2>nul >nul
if errorlevel 1 (
echo User needs to configure PythonScript to run ATSTARTUP
)
)
echo done