summaryrefslogtreecommitdiff
path: root/sync.cmd
blob: 70bde8ce87b4cec9fdccf6268969ac70767cf89c (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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
@if "%_echo%" neq "on" echo off
setlocal EnableDelayedExpansion

set synclog=sync.log
echo Running Sync.cmd %* > %synclog%

set options=/nologo /v:minimal /clp:Summary /flp:v=detailed;Append;LogFile=%synclog%
set unprocessedBuildArgs=
set allargs=%*
set thisArgs=

set src=false
set packages=false

if [%1]==[] (
  set src=true
  set packages=true
  goto Begin
)

:Loop
if [%1]==[] goto Begin

if /I [%1] == [/?] goto Usage
if /I [%1] == [/help] goto Usage

if /I [%1] == [/p] (
    set packages=true
    set thisArgs=!thisArgs!%1
    goto Next
)

if /I [%1] == [/s] (
    set src=true
    set thisArgs=!thisArgs!%1
    goto Next
)

set unprocessedBuildArgs=!unprocessedBuildArgs! %1

:Next
shift /1
goto Loop

:Begin
echo Running init-tools.cmd
call %~dp0init-tools.cmd

if [%src%] == [true] (
  echo Fetching git database from remote repos ...
  call git fetch --all -p -v >> %synclog% 2>&1
  if NOT [!ERRORLEVEL!]==[0] (
    echo ERROR: An error occurred while fetching remote source code, see %synclog% for more details.
    exit /b 1
  )
)

set targets=RestoreNETCorePlatforms

if [%packages%] == [true] (
  set options=!options! /t:!targets! /p:RestoreDuringBuild=true
  echo msbuild.exe %~dp0build.proj !options! !unprocessedBuildArgs! >> %synclog%
  call msbuild.exe %~dp0build.proj !options! !unprocessedBuildArgs!
  if NOT [!ERRORLEVEL!]==[0] (
    echo ERROR: An error occurred while syncing packages, see %synclog% for more details. There may have been networking problems so please try again in a few minutes.
    exit /b 1
  )
)

echo Done Syncing.
exit /b 0

goto :EOF

:Usage
echo.
echo Repository syncing script.
echo.
echo Options:
echo     /s     - Fetches source history from all configured remotes
echo              (git fetch --all -p -v)
echo     /p     - Restores all nuget packages for repository
echo.
echo If no option is specified then sync.cmd /s /p is implied.