make.cmd 3.08 KB
@ECHO OFF

CD /D "%~dp0"

SET "VLIBRAS_ADDON_DIR=%APPDATA%\nvda\addons\vlibras"
SET "VLIBRAS_ADDON_NAME=vlibras.nvda-addon"

:MAIN
    SETLOCAL ENABLEDELAYEDEXPANSION
    SET "TARGETS=BUILD HELP INSTALL KILL OPEN RUN UNINSTALL UPDATE"
    SET /A "ARGC=0"
    FOR %%A IN (%*) DO (
        SET /A "ARGC+=1"
        SET "ARGVALID=FALSE"
        IF /I "%%A" EQU "--help" (CALL :HELP & GOTO :END)
        IF /I "%%A" EQU "-help" (CALL :HELP & GOTO :END)
        IF /I "%%A" EQU "/help" (CALL :HELP & GOTO :END)
        FOR %%B IN (%TARGETS%) DO (
            IF /I "%%A" == "%%B" (
                SET "ARGVALID=TRUE"
                CALL :%%A
            )
        )
        IF /I "!ARGVALID!" EQU "FALSE" (
            ECHO.Argument !ARGC! is not valid: %%A
            ECHO.For help type: %~nn0 HELP
            ECHO.Targets: %TARGETS%
            GOTO :END
        )
    )
    IF %ARGC% LSS 1 (CALL :BUILD)
:END
    ENDLOCAL
EXIT /B

:HELP
    ECHO.
    ECHO.  Usage: Makefile ^<options^>
    ECHO.
    ECHO.    Options      Description
    ECHO.      build        build plugin %VLIBRAS_ADDON_NAME%
    ECHO.      help         show this help
    ECHO.      install      install %VLIBRAS_ADDON_NAME%
    ECHO.      kill         kill all nvda process
    ECHO.      open         open nvda appdata directory
    ECHO.      run          start nvda
    ECHO.      uninstall    remove %VLIBRAS_ADDON_NAME%
    ECHO.      update       reinstall %VLIBRAS_ADDON_NAME% and restart NVDA
    ECHO.
GOTO :EOF

:BUILD
    SET "PATH=%CD%\bin;%PATH%"
    SET "FILE=%FILE% manifest.ini"
    SET "FOLDER=%FOLDER% doc\*"
    REM SET "FOLDER=%FOLDER% appModules\*"
    SET "FOLDER=%FOLDER% globalPlugins\*"
    2>NUL DEL "%VLIBRAS_ADDON_NAME%"
    7z a -aoa -tzip "%VLIBRAS_ADDON_NAME%" %FILE% %FOLDER% -r -mx9 -mmt
GOTO :EOF

:INSTALL
    XCOPY /V /I /S /Q /Y ".\doc" "%VLIBRAS_ADDON_DIR%\doc"
    REM XCOPY /V /I /S /Q /Y ".\appModules" "%VLIBRAS_ADDON_DIR%\appModules"
    XCOPY /V /I /S /Q /Y ".\globalPlugins" "%VLIBRAS_ADDON_DIR%\globalPlugins"
    XCOPY /V /I /Q /Y ".\manifest.ini" "%VLIBRAS_ADDON_DIR%"
GOTO :EOF

:KILL
    TASKKILL /F /IM nvda.exe
    TASKKILL /F /IM nvda_eoaProxy.exe
    TASKKILL /F /IM nvda_noUIAccess.exe
    TASKKILL /F /IM nvda_service.exe
    TASKKILL /F /IM nvda_slave.exe
GOTO :EOF

:OPEN
    IF EXIST "%VLIBRAS_ADDON_DIR%" (
        START "" EXPLORER "%VLIBRAS_ADDON_DIR%"
    ) ELSE (
        ECHO.NVDA is not installed!
    )
GOTO :EOF

:RUN
    SET "NVDA_EXE=NVDA\nvda_slave.exe"
    SET "NVDA_X86=%PROGRAMFILES%\%NVDA_EXE%"
    SET "NVDA_X64=%PROGRAMFILES(x86)%\%NVDA_EXE%"
    IF EXIST "%NVDA_X86%" (
        START "" "%NVDA_X86%" launchNVDA -r
    ) ELSE IF EXIST "%NVDA_X64%" (
        START "" "%NVDA_X64%" launchNVDA -r
    ) ELSE (
        ECHO.NVDA is not installed!
    )
GOTO :EOF

:UNINSTALL
    IF EXIST "%VLIBRAS_ADDON_DIR%" (
        RMDIR /S /Q "%VLIBRAS_ADDON_DIR%"
    ) ELSE (
        ECHO.%VLIBRAS_ADDON_NAME% is not installed!
    )
GOTO :EOF

:UPDATE
    CALL :KILL
    CALL :INSTALL
    CALL :RUN
GOTO :EOF