]> git.donarmstrong.com Git - qmk_firmware.git/blob - 1-setup-path-win.bat
2c15857bb7a759c9eafd5a494b313c9520ae0f6b
[qmk_firmware.git] / 1-setup-path-win.bat
1 @SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
2 @ECHO OFF
3 SET CMDLINERUNSTR=%SystemRoot%\system32\cmd.exe
4
5 SET NEWPATH1="C:\MinGW\msys\1.0\bin"
6 SET NEWPATH2="C:\MinGW\bin"
7
8 :: Make sure paths exist
9 IF NOT EXIST !NEWPATH1! (ECHO Path not found: %NEWPATH1% && GOTO ExitBatch)
10 IF NOT EXIST !NEWPATH2! (ECHO Path not found: %NEWPATH2% && GOTO ExitBatch)
11
12 :: Add paths
13 CALL :AddPath %NEWPATH1%
14 CALL :AddPath %NEWPATH2%
15
16 :: Branch to UpdateEnv if we need to update
17 IF DEFINED UPDATE (GOTO UpdateEnv)
18
19 GOTO ExitBatch
20
21 :: -----------------------------------------------------------------------------
22
23 :UpdateEnv
24 ECHO Making updated PATH go live . . .
25 REG delete HKCU\Environment /F /V TEMPVAR > nul 2>&1
26 setx TEMPVAR 1 > nul 2>&1
27 REG delete HKCU\Environment /F /V TEMPVAR > nul 2>&1
28 IF NOT !cmdcmdline! == !CMDLINERUNSTR! (CALL :KillExplorer)
29 GOTO ExitBatch
30
31 :: -----------------------------------------------------------------------------
32
33 :ExitBatch
34 ENDLOCAL
35 PAUSE
36 EXIT /b
37
38 :: -----------------------------------------------------------------------------
39
40 :AddPath <pathToAdd>
41 ECHO %PATH% | FINDSTR /C:"%~1" > nul
42 IF ERRORLEVEL 1 (
43         REG add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /f /v PATH /t REG_SZ /d "%PATH%;%~1"  > nul 2>&1
44         IF ERRORLEVEL 0 (
45                 ECHO Adding   %1 . . . Success!
46                 SET "PATH=%PATH%;%~1"
47                 SET UPDATE=1
48         ) ELSE (
49                 ECHO Adding   %1 . . . FAILED. Run this script with administrator privileges.
50         )       
51 ) ELSE (
52         ECHO Skipping %1 - Already in PATH
53         )
54 EXIT /b
55
56 :: -----------------------------------------------------------------------------
57
58 :KillExplorer
59
60 ECHO Your desktop is being restarted, please wait. . .   
61 ping -n 5 127.0.0.1 > NUL 2>&1   
62 ECHO Killing process Explorer.exe. . .   
63 taskkill /f /im explorer.exe   
64 ECHO.   
65 ECHO Your desktop is now loading. . .   
66 ping -n 5 127.0.0.1 > NUL 2>&1   
67 ECHO.   
68 ping -n 5 127.0.0.1 > NUL 2>&1   
69 START explorer.exe
70 START explorer.exe %CD%
71 EXIT /b