forked from telegramdesktop/tdesktop
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprepare.bat
120 lines (109 loc) · 3.12 KB
/
prepare.bat
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
@echo off
setlocal enabledelayedexpansion
set "FullScriptPath=%~dp0"
set "FullExecPath=%cd%"
set "Command=%1"
if "%Command%" == "module" (
call :write_module %2
exit /b %errorlevel%
) else if "%Command%" == "header" (
call :write_header %2
exit /b %errorlevel%
) else if "%Command%" == "source" (
call :write_source %2
exit /b %errorlevel%
)
cd gyp
call refresh.bat
cd ..
exit /b
:write_module
(
set "CommandPath=%1"
set "CommandPathUnix=!CommandPath:\=/!"
if "!CommandPathUnix!" == "" (
echo Provide module path.
exit /b 1
)
echo Generating module !CommandPathUnix!..
call prepare.bat header !CommandPathUnix!
call prepare.bat source !CommandPathUnix!
exit /b
)
:write_header
(
set "CommandPath=%1"
set "CommandPathUnix=!CommandPath:\=/!"
set "CommandPathWin=!CommandPath:/=\!"
if "!CommandPathUnix!" == "" (
echo Provide header path.
exit /b 1
) else if exist "SourceFiles\!CommandPathWin!.h" (
echo This header already exists.
exit /b 1
)
echo Generating header !CommandPathUnix!.h..
mkdir "SourceFiles\!CommandPathWin!.h"
rmdir "SourceFiles\!CommandPathWin!.h"
call :write_comment !CommandPathWin!.h
set "header1=#pragma once"
(
echo !header1!
echo.
)>> "SourceFiles\!CommandPathWin!.h"
exit /b
)
:write_source
(
set "CommandPath=%1"
set "CommandPathUnix=!CommandPath:\=/!"
set "CommandPathWin=!CommandPath:/=\!"
if "!CommandPathUnix!" == "" (
echo Provide source path.
exit /b 1
) else if exist "SourceFiles\!CommandPathWin!.cpp" (
echo This source already exists.
exit /b 1
)
echo Generating source !CommandPathUnix!.cpp..
mkdir "SourceFiles\!CommandPathWin!.cpp"
rmdir "SourceFiles\!CommandPathWin!.cpp"
call :write_comment !CommandPathWin!.cpp
set "quote="""
set "quote=!quote:~0,1!"
set "source1=#include !quote!stdafx.h!quote!"
set "source2=#include !quote!!CommandPathUnix!.h!quote!"
(
echo !source1!
echo !source2!
echo.
)>> "SourceFiles\!CommandPathWin!.cpp"
exit /b
)
:write_comment
(
set "Path=%1"
(
echo /*
echo This file is part of Telegram Desktop,
echo the official desktop version of Telegram messaging app, see https://telegram.org
echo.
echo Telegram Desktop is free software: you can redistribute it and/or modify
echo it under the terms of the GNU General Public License as published by
echo the Free Software Foundation, either version 3 of the License, or
echo ^(at your option^) any later version.
echo.
echo It is distributed in the hope that it will be useful,
echo but WITHOUT ANY WARRANTY; without even the implied warranty of
echo MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
echo GNU General Public License for more details.
echo.
echo In addition, as a special exception, the copyright holders give permission
echo to link the code of portions of this program with the OpenSSL library.
echo.
echo Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE
echo Copyright ^(c^) 2014-2017 John Preston, https://desktop.telegram.org
echo */
)> "SourceFiles\!Path!"
exit /b
)