Skip to content

Commit

Permalink
Merge pull request #117 from openpreserve/fix/batch-versions
Browse files Browse the repository at this point in the history
TEST: Added batch file test to actions.
  • Loading branch information
carlwilson authored Dec 5, 2023
2 parents 412797b + 7e06153 commit c07c818
Show file tree
Hide file tree
Showing 6 changed files with 232 additions and 3 deletions.
8 changes: 7 additions & 1 deletion .github/workflows/test-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,11 @@ jobs:
with:
extra_args: --all-files --verbose
- name: Test with Maven
if: (matrix.java-version == 8)
if: (matrix.java-version == 11)
run: mvn --batch-mode verify -DjacocoAgg
- name: Test build package on Windows
if: (matrix.os == 'windows-latest')
run: mvn --batch-mode package -DjacocoAgg && ./odf-validator.bat --version
- name: Test build package on Ubuntu
if: (matrix.os == 'ubuntu-latest')
run: mvn --batch-mode package -DjacocoAgg && ./odf-validator --version
2 changes: 1 addition & 1 deletion odf-validator
Original file line number Diff line number Diff line change
Expand Up @@ -78,5 +78,5 @@ fi

exec "$JAVACMD" -Dfile.encoding=UTF8 -XX:+IgnoreUnrecognizedVMOptions \
-Dapp.name="ODF Validator" \
-jar target/odf-validator-0.1.0-SNAPSHOT-jar-with-dependencies.jar \
-jar target/odf-validator-0.9.1-jar-with-dependencies.jar \
"$@"
2 changes: 1 addition & 1 deletion odf-validator.bat
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ if NOT "%CLASSPATH_PREFIX%" == "" set CLASSPATH=%CLASSPATH_PREFIX%;%CLASSPATH%
@REM Reaching here means variables are defined and arguments have been captured
:endInit

"%JAVACMD%" -Dfile.encoding=UTF8 -XX:+IgnoreUnrecognizedVMOptions -Dapp.name="ODF Validator" -jar target/odf-validator-0.1.0-SNAPSHOT-jar-with-dependencies.jar %CMD_LINE_ARGS%
"%JAVACMD%" -Dfile.encoding=UTF8 -XX:+IgnoreUnrecognizedVMOptions -Dapp.name="ODF Validator" -jar target/odf-validator-0.9.1-jar-with-dependencies.jar %CMD_LINE_ARGS%
if %ERRORLEVEL% NEQ 0 goto error
goto end

Expand Down
25 changes: 25 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,31 @@
<goals>deploy</goals>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<!-- Copy izpack resources -->
<id>verapdf-scripts</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>

<configuration>
<outputDirectory>./</outputDirectory>
<resources>
<resource>
<!-- Filter batch file copy to replace version number with current version number. -->
<directory>src/main/resources/org/openpreservation/odf/batch</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

Expand Down
82 changes: 82 additions & 0 deletions src/main/resources/org/openpreservation/odf/batch/odf-validator
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
#!/bin/sh

# resolve links - $0 may be a softlink
PRG="$0"

while [ -h "$PRG" ]; do
ls=$(ls -ld "$PRG")
link=$(expr "$ls" : '.*-> \(.*\)$')
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=$(dirname "$PRG")/"$link"
fi
done

PRGDIR=$(dirname "$PRG")
BASEDIR=$(cd "$PRGDIR/" >/dev/null || exit; pwd)

# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
case "$(uname)" in
CYGWIN*) cygwin=true ;;
Darwin*) darwin=true
if [ -z "$JAVA_VERSION" ] ; then
JAVA_VERSION="CurrentJDK"
else
echo "Using Java version: $JAVA_VERSION"
fi
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
JAVA_HOME=$(/usr/libexec/java_home)
else
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/${JAVA_VERSION}/Home
fi
fi
;;
esac

if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=$(java-config --jre-home)
fi
fi

# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$JAVA_HOME" ] && JAVA_HOME=$(cygpath --unix "$JAVA_HOME")
[ -n "$CLASSPATH" ] && CLASSPATH=$(cygpath --path --unix "$CLASSPATH")
fi

# If a specific java binary isn't specified search for the standard 'java' binary
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD=$(which java)
fi
fi

if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." 1>&2
echo " We cannot execute $JAVACMD" 1>&2
exit 1
fi

# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$JAVA_HOME" ] && JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME")
[ -n "$HOME" ] && HOME=$(cygpath --path --windows "$HOME")
[ -n "$BASEDIR" ] && BASEDIR=$(cygpath --path --windows "$BASEDIR")
fi

exec "$JAVACMD" -Dfile.encoding=UTF8 -XX:+IgnoreUnrecognizedVMOptions \
-Dapp.name="ODF Validator" \
-jar odf-apps/target/odf-apps-${project.version}-jar-with-dependencies.jar \
"$@"
116 changes: 116 additions & 0 deletions src/main/resources/org/openpreservation/odf/batch/odf-validator.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
@REM
@REM This file is part of veraPDF Installer, a module of the veraPDF project.
@REM Copyright (c) 2015, veraPDF Consortium <info@verapdf.org>
@REM All rights reserved.
@REM
@REM veraPDF Installer is free software: you can redistribute it and/or modify
@REM it under the terms of either:
@REM
@REM The GNU General public license GPLv3+.
@REM You should have received a copy of the GNU General Public License
@REM along with veraPDF Installer as the LICENSE.GPL file in the root of the source
@REM tree. If not, see http://www.gnu.org/licenses/ or
@REM https://www.gnu.org/licenses/gpl-3.0.en.html.
@REM
@REM The Mozilla Public License MPLv2+.
@REM You should have received a copy of the Mozilla Public License along with
@REM veraPDF Installer as the LICENSE.MPL file in the root of the source tree.
@REM If a copy of the MPL was not distributed with this file, you can obtain one at
@REM http://mozilla.org/MPL/2.0/.
@REM

@echo off

set ERROR_CODE=0

:init
@REM Decide how to startup depending on the version of windows

@REM -- Win98ME
if NOT "%OS%"=="Windows_NT" goto Win9xArg

@REM set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" @setlocal

@REM -- 4NT shell
if "%eval[2+2]" == "4" goto 4NTArgs

@REM -- Regular WinNT shell
set CMD_LINE_ARGS=%*
goto WinNTGetScriptDir

@REM The 4NT Shell from jp software
:4NTArgs
set CMD_LINE_ARGS=%$
goto WinNTGetScriptDir

:Win9xArg
@REM Slurp the command line arguments. This loop allows for an unlimited number
@REM of arguments (up to the command line limit, anyway).
set CMD_LINE_ARGS=
:Win9xApp
if %1a==a goto Win9xGetScriptDir
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
shift
goto Win9xApp

:Win9xGetScriptDir
set SAVEDIR=%CD%
%0\
cd %0\..\..
set BASEDIR=%CD%
cd %SAVEDIR%
set SAVE_DIR=
goto repoSetup

:WinNTGetScriptDir
set BASEDIR=%~dp0
if %BASEDIR:~-1%==\ set BASEDIR=%BASEDIR:~0,-1%

:repoSetup
set REPO=


if "%JAVACMD%"=="" set JAVACMD=java

if "%REPO%"=="" set REPO=%BASEDIR%\bin

set CLASSPATH="%BASEDIR%"\etc;"%REPO%"\*

set ENDORSED_DIR=
if NOT "%ENDORSED_DIR%" == "" set CLASSPATH="%BASEDIR%"\%ENDORSED_DIR%\*;%CLASSPATH%

if NOT "%CLASSPATH_PREFIX%" == "" set CLASSPATH=%CLASSPATH_PREFIX%;%CLASSPATH%

@REM Reaching here means variables are defined and arguments have been captured
:endInit

"%JAVACMD%" -Dfile.encoding=UTF8 -XX:+IgnoreUnrecognizedVMOptions -Dapp.name="ODF Validator" -jar .\odf-apps\target\odf-apps-${project.version}-jar-with-dependencies.jar %CMD_LINE_ARGS%
if %ERRORLEVEL% NEQ 0 goto error
goto end

:error
if "%OS%"=="Windows_NT" @endlocal
set ERROR_CODE=%ERRORLEVEL%

:end
@REM set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" goto endNT

@REM For old DOS remove the set variables from ENV - we assume they were not set
@REM before we started - at least we don't leave any baggage around
set CMD_LINE_ARGS=
goto postExec

:endNT
@REM If error code is set to 1 then the endlocal was done already in :error.
if %ERROR_CODE% EQU 0 @endlocal


:postExec

if "%FORCE_EXIT_ON_ERROR%" == "on" (
if %ERROR_CODE% NEQ 0 exit %ERROR_CODE%
)

exit /B %ERROR_CODE%

0 comments on commit c07c818

Please sign in to comment.