mirror of
https://github.com/danieleteti/delphimvcframework.git
synced 2024-11-16 08:15:53 +01:00
125 lines
4.9 KiB
Python
125 lines
4.9 KiB
Python
import subprocess
|
|
import os
|
|
from datetime import datetime
|
|
from colorama import *
|
|
init() #colorama initialization
|
|
|
|
### task setup env
|
|
DOIT_CONFIG = {'verbosity': 2, 'default_tasks': ['build']}
|
|
|
|
###############################################################################################
|
|
############## CONFIGURATION ##################################################################
|
|
###############################################################################################
|
|
projects = [
|
|
('samples\\01_global_logger\\global_logger.dproj','Win32'),
|
|
('samples\\02_file_appender\\file_appender.dproj','Win32'),
|
|
('samples\\03_console_appender\\console_appender.dproj','Win32'),
|
|
('samples\\04_outputdebugstring_appender\\outputdebugstring_appender.dproj','Win32'),
|
|
('samples\\05_vcl_appenders\\vcl_appenders.dproj','Win32'),
|
|
('samples\\08_email_appender\\email_appender.dproj','Win32'),
|
|
('samples\\10_multiple_appenders\\multiple_appenders.dproj','Win32'),
|
|
('samples\\15_appenders_with_different_log_levels\\multi_appenders_different_loglevels.dproj','Win32'),
|
|
('samples\\20_multiple_loggers\\multiple_loggers.dproj','Win32'),
|
|
('samples\\50_custom_appender\\custom_appender.dproj','Win32'),
|
|
('samples\\60_logging_inside_dll\\MainProgram.dproj','Win32'),
|
|
('samples\\60_logging_inside_dll\\mydll.dproj','Win32'),
|
|
('samples\\70_isapi_sample\\loggerproisapisample.dproj','Win32'),
|
|
('samples\\90_remote_logging_with_redis\\RemoteRedisAppenderSample.dproj','Win32'),
|
|
('samples\\90_remote_logging_with_redis\\redis_logs_viewer\\RedisLogsViewer.dproj','Win32'),
|
|
('samples\\100_udp_syslog\\udp_syslog.dproj','Win32'),
|
|
('samples\\110_rest_appender\RESTAppenderSample.dproj','Win32'),
|
|
('samples\\110_rest_appender_mobile\MobileRESTAppenderSample.dproj','Android'),
|
|
('samples\\120_elastic_search_appender\\ElasticSearchAppenderSample.dproj','Win32'),
|
|
('samples\\rest_logs_collector\RESTLogsCollector.dproj','Win32')
|
|
]
|
|
|
|
release_path = "BUILD"
|
|
###############################################################################################
|
|
############## END CONFIGURATION ##############################################################
|
|
###############################################################################################
|
|
|
|
GlobalBuildVersion = 'DEV' #if we are building an actual release, this will be replaced
|
|
|
|
def header(headers):
|
|
elements = None
|
|
if type(headers).__name__ == 'str':
|
|
elements = [headers]
|
|
else:
|
|
elements = headers
|
|
|
|
print(Style.BRIGHT + Back.WHITE + Fore.RED + "*" * 80 + Style.RESET_ALL)
|
|
for txt in elements:
|
|
s = '{:^80}'.format(txt)
|
|
print(Style.BRIGHT + Back.WHITE + Fore.RED + s + Style.RESET_ALL)
|
|
print(Style.BRIGHT + Back.WHITE + Fore.RED + "*" * 80 + Style.RESET_ALL)
|
|
|
|
|
|
def buildProject(project, config = 'DEBUG'):
|
|
project_file, platform = project
|
|
header(["Building", project_file,"(config " + config + ")"])
|
|
p = project_file.replace('.dproj', '.cfg')
|
|
if os.path.isfile(p):
|
|
if os.path.isfile(p + '.unused'):
|
|
os.remove(p + '.unused')
|
|
os.rename(p, p + '.unused')
|
|
return subprocess.call(f"rsvars.bat & msbuild /t:Build /p:Config={config} /p:Platform={platform} \"{project_file}\"", shell=True) == 0
|
|
|
|
def buildProjects():
|
|
res = True
|
|
for project in projects:
|
|
res &= buildProject(project)
|
|
if not res:
|
|
print("Failed " + project[0])
|
|
return res
|
|
|
|
|
|
def build_unit_tests():
|
|
res = buildProject(('unittests\\UnitTests.dproj','Win32'), 'PLAINDUNITX')
|
|
return res
|
|
|
|
|
|
def create_build_tag(version):
|
|
global GlobalBuildVersion
|
|
GlobalBuildVersion = version
|
|
header("BUILD VERSION: " + GlobalBuildVersion)
|
|
f = open("VERSION.TXT","w")
|
|
f.write("VERSION " + GlobalBuildVersion + "\n")
|
|
f.write("BUILD DATETIME " + datetime.now().isoformat() + "\n")
|
|
f.close()
|
|
|
|
#############################################################################################################################
|
|
|
|
def task_build():
|
|
'''Use: doit build -v <VERSION> -> Builds all the projects. Then creates SFX archive.'''
|
|
return {
|
|
'actions': [
|
|
create_build_tag,
|
|
"echo %%date%% %%time:~0,8%% > LOGGERPRO-BUILD-TIMESTAMP.TXT",
|
|
buildProjects,
|
|
build_unit_tests,
|
|
"unittests\\Win32\\PLAINDUNITX\\UnitTests.exe -exit:Continue"],
|
|
'params':[{'name':'version',
|
|
'short':'v',
|
|
'long':'version',
|
|
'type':str,
|
|
'default':'DEVELOPMENT'}
|
|
],
|
|
'verbosity': 2
|
|
}
|
|
|
|
def task_unittests():
|
|
'''Use: doit unittests. Builds unittests project and run it.'''
|
|
return {
|
|
'actions': [
|
|
build_unit_tests,
|
|
"unittests\\Win32\\PLAINDUNITX\\UnitTests.exe -exit:Continue"
|
|
],
|
|
'params':[{'name':'version',
|
|
'short':'v',
|
|
'long':'version',
|
|
'type':str,
|
|
'default':'DEVELOPMENT'}
|
|
],
|
|
'verbosity': 2
|
|
}
|
|
|