summaryrefslogtreecommitdiffstats
path: root/src/corelib/mimetypes/mime/generate.bat
blob: 5ea9e5ea5548b4306e03ea2281e698d187941a8e (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
:: Copyright (C) 2019 Intel Corporation.
:: SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0

@echo off
setlocal ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS
set me=%~dp0

:: Check if certain tools are in PATH
for %%C in (gzip.exe zstd.exe perl.exe) do set %%C=%%~$PATH:C

:: If perl is in PATH, just let it do everything
if not "%perl.exe%" == "" goto PuntToPerl

set COMPRESS=
set MACRO=MIME_DATABASE_IS_UNCOMPRESSED
if not "%gzip.exe%" == "" (
    set COMPRESS=gzip -9
    set MACRO=MIME_DATABASE_IS_GZIP
)

:: Check if zstd support was enabled
if /i "%~1" == "--zstd" (
    shift
    if not "%zstd.exe%" == "" (
        set COMPRESS=zstd -19
        set MACRO=MIME_DATABASE_IS_ZSTD
    )
)

if not "%COMPRESS%" == "" goto CompressedCommon

:: No Compression and no Perl
:: Just hex-dump with Powershell
powershell -ExecutionPolicy Bypass %me%hexdump.ps1 %1 %1
exit /b %errorlevel%

:CompressedCommon
:: Compress to a temporary file, then hex-dump using Powershell
echo #define %MACRO%
set tempfile=generate%RANDOM%.tmp
%COMPRESS% < %1 > %tempfile%
powershell -ExecutionPolicy Bypass %me%hexdump.ps1 %tempfile% %1
del %tempfile%
exit /b %errorlevel%

:PuntToPerl
perl %me%generate.pl %*
exit /b %errorlevel%