Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a468dcf7 authored by vincent's avatar vincent
Browse files

update bashToBatch.md and add the first script in .bat but it isn't 100% translated

parent 53764c32
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
Copyright (C) 2020 ECORP SAS - Author: Vincent Bourgmayer

Conversion bash to batch
Conversion from bash to batch

This files contains mapping of bash command for batch
# Expression bash  => batch
This files contains mapping of bash command for batch and sometimes to OSX command

# Expression bash  => batch => osx
## Declaration
- `var="foo" => `set "var=foo"`
- `var=1` => `set /a "var=1"
@@ -17,10 +18,10 @@ This files contains mapping of bash command for batch

## Process
- `exit 101` => `exit /b 101`
- `if [ $? > 0]` => `if not errorLevel 1 <cmd>` 
- `if [ $? = 0]` => `if not errorLevel 1 <cmd>` 
- `var=$1` => `set "var=%1"`

## Other
- `sha256sum -c ${FILENAME}.sha256sum` => `certUtil ??????????`
- `wget` => `curl` 
- `sha256sum -c filename` => `certUtil -hashfile filename SHA256` => `shasum -a 256 filename` 
- `wget -O path/to/localFile <URL>` => `curl -o path\to\localFile <URL>` 
- `ping -c` => `ping -r`
+73 −0
Original line number Diff line number Diff line
# Copyright (C) 2019-2020 ECORP SAS - Author: Romain Hunault, Vincent Bourgmayer
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.

# Parameter
# %1: ARCHIVE_URL
# %2: FOLDER (will be created if doesn't exist)

# Exit status
# - 0 : archive downloaded
# - 1 : Generic error code (see wget exit status here: https://www.gnu.org/software/wget/manual/html_node/Exit-Status.html)
# - 2 : Parse error—for instance, when parsing command-line options, the ‘.wgetrc’ or ‘.netrc’... (see wget exit status here: https://www.gnu.org/software/wget/manual/html_node/Exit-Status.html)
# - 3 : File I/O error (see wget exit status here: https://www.gnu.org/software/wget/manual/html_node/Exit-Status.html)
# - 4 : Network failure (see wget exit status here: https://www.gnu.org/software/wget/manual/html_node/Exit-Status.html)
# - 5 : SSL verification failure (see wget exit status here: https://www.gnu.org/software/wget/manual/html_node/Exit-Status.html)
# - 6 : Username/password authentication failure (see wget exit status here: https://www.gnu.org/software/wget/manual/html_node/Exit-Status.html)
# - 7 : Protocol errors (see wget exit status here: https://www.gnu.org/software/wget/manual/html_node/Exit-Status.html)
# - 8 : Server issued an error response (see wget exit status here: https://www.gnu.org/software/wget/manual/html_node/Exit-Status.html)
# - 10: No internet connection
# - 11: Invalid file downloaded
# - 101 : ARCHIVE_URL missing
# - 102 : FOLDER missing

set "ARCHIVE_URL=%1"
set "FOLDER=%2"

if not ping -r 1 gitlab.e.foundation 2>&1 >/dev/null
  exit /b 10

if not defined FOLDER
  exit /b 101

if not defined ARCHIVE_URL
  exit /b 102

mkdir %FOLDER%

# I'm not certain of the below block
set "FILENAME="
for %%a in ARCHIVE_URL do (
	set "FILENAME= %~na"
)

curl -o %FOLDER%"\"%FILENAME%".sha256sum" %ARCHIVE_URL%".sha256sum"

# the following two lines should be the last to transform into batch
FOLDER_ESCAPED=echo %FOLDER% | sed 's/\/$//' | sed 's/\//\\\//g'

# this is a simple concatenation or injection
sed -i 's/\(.*\)  \(.*\)/\1 '${FOLDER_ESCAPED}'\/\2/' ${FOLDER}/${FILENAME}.sha256sum


if not errorLevel 1 CertUtil -hashfile  %FOLDER%"\"%FILENAME%".sha256sum"
  exit /b 0


curl -o %FOLDER%"\"%FILENAME}% ARCHIVE_URL

if errorLevel 1 CertUtil -hashfile %FOLDER%"\"%FILENAME%".sha256sum"
  rm ${FILENAME}
  exit /b 11