summaryrefslogtreecommitdiff
path: root/scripts/xrepo.bat
blob: 77acf7d24e1f7b8f3133bf8e4ed1bf9ce16e66eb (plain)
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
@set "XMAKE_EXE=xmake"

@if [%1]==[env] (
    if [%2]==[quit] (
        if defined XMAKE_PROMPT_BACKUP (
            call %XMAKE_ENV_BACKUP%
            setlocal EnableDelayedExpansion
            if !errorlevel! neq 0 exit /B !errorlevel!
            endlocal
            set PROMPT=%XMAKE_PROMPT_BACKUP%
            set XMAKE_ENV_BACKUP=
            set XMAKE_PROMPT_BACKUP=
        )
        goto :ENDXREPO
    )
    if [%2]==[shell] (
        if defined XMAKE_PROMPT_BACKUP (
            call %XMAKE_ENV_BACKUP%
            setlocal EnableDelayedExpansion
            if !errorlevel! neq 0 exit /B !errorlevel!
            %XMAKE_EXE% lua private.xrepo.action.env.info config
            if !errorlevel! neq 0 (
                exit /B !errorlevel!
            )
            @%XMAKE_EXE% lua --quiet private.xrepo.action.env.info prompt 1>nul
            if !errorlevel! neq 0 (
                echo error: xmake.lua not found^^!
                exit /B !errorlevel!
            )
            endlocal
            set PROMPT=%XMAKE_PROMPT_BACKUP%
            set XMAKE_ENV_BACKUP=
            set XMAKE_PROMPT_BACKUP=
            echo Please rerun `xrepo env shell` to enter the environment.
            exit /B 1
        ) else (
            setlocal EnableDelayedExpansion
            %XMAKE_EXE% lua private.xrepo.action.env.info config
            if !errorlevel! neq 0 (
                exit /B !errorlevel!
            )
            @%XMAKE_EXE% lua --quiet private.xrepo.action.env.info prompt 1>nul
            if !errorlevel! neq 0 (
                echo error: xmake.lua not found^^!
                exit /B !errorlevel!
            )
            endlocal
            for /f %%i in ('@%XMAKE_EXE% lua --quiet private.xrepo.action.env.info prompt') do @(
                @set "PROMPT=%%i %PROMPT%"
            )
            @set XMAKE_PROMPT_BACKUP=%PROMPT%
        )
        for /f %%i in ('@%XMAKE_EXE% lua private.xrepo.action.env.info envfile') do @(
            @set "XMAKE_ENV_BACKUP=%%i.bat"
            @"%XMAKE_EXE%" lua private.xrepo.action.env.info backup.cmd 1>"%%i.bat"
        )
        for /f %%i in ('@%XMAKE_EXE% lua private.xrepo.action.env.info envfile') do @(
            @"%XMAKE_EXE%" lua private.xrepo.action.env.info script.cmd 1>"%%i.bat"
            call "%%i.bat"
        )
        goto :ENDXREPO
    )
)

@call %XMAKE_EXE% lua private.xrepo %*

:ENDXREPO