-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #4 from robocup-junior/main
Pull windows build script from main to 2024-draft branch
- Loading branch information
Showing
2 changed files
with
93 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
## Building the PDF rules on your own | ||
|
||
The rules are written in a format called `asciidoc`. It is very similar to | ||
Markdown but unlike Markdown, it is very extensible and has a nice ecosystems | ||
of tools around it. To get a feel for what it looks like, please take a look at | ||
the [AsciiDoc Writer's Guide](https://asciidoctor.org/docs/asciidoc-writers-guide/). | ||
|
||
Despite how great it is, the rules cannot be built with AsciiDoc alone. They | ||
need to be exported into PDF, in a specific format, and we'd also like them to | ||
highlight the changes in a nice way and automatically generate IDs for each | ||
paragraph. To do all this, the input AsciiDoc file goes thorugh the following | ||
steps: | ||
|
||
1. `AsciiDoc` -> `CriticMarked AsciiDoc` (_to visualize rule changes in red_) | ||
2. `CriticMarked AsciiDoc` -> **HTML** | ||
3. `CriticMarked AsciiDoc` -> `LaTeX` (for formatting purposes) | ||
4. `LaTeX` -> `LaTeX + RCJ Soccer formatting` (_to ensure uniformity of the output_) | ||
5. `LaTeX + RCJ Soccer formatting` -> **PDF** | ||
|
||
At the end of this process we end up with a **HTML** and a **PDF** version of | ||
the AsciiDoc file we started with. | ||
|
||
This repository is connected to so called [Travis CI](http://travis-ci.org/) | ||
which allows us to automatically build the rules whenever any change/update | ||
takes place. | ||
|
||
If you'd like to build the rules on your own computer you have to follow the instructions below. | ||
|
||
### Linux or MacOS System | ||
|
||
1. Install [Docker](https://docker.com) with the instructions on the website. | ||
2. Open a console and run the following commands | ||
3. `docker run -v $(pwd):/documents asciidoctor/docker-asciidoctor .ci/adoc-to-tex.sh rules` | ||
4. `docker run -v $(pwd):/documents mrshu/texlive-dblatex .ci/tex-to-pdf.sh rules` | ||
|
||
These commands will make the `rules.adoc` file (in the current working directory -- | ||
that's the `$(pwd)` part) go through the build steps above and generate the files | ||
`rules.html` and `rules.pdf` as a result. | ||
|
||
### Windows System | ||
|
||
When running on Windows you initially have to do a few extra extra steps to be able to build | ||
the rules using the Linux scripts with the windows subsystem for Linux. | ||
|
||
1. Install the [Windows subsystem for linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/install) | ||
2. Open the WSL (search for WSL in the Windows search bar) and create username and passwort | ||
5. Install [Docker](https://docker.com) with the instructions on the website if not done yet | ||
6. Run the [build_rules_on_windows script](https://github.com/robocup-junior/onstage-rules/blob/main/build_rules_on_windows.bat) to build the rules | ||
|
||
You can now find the PDF and HTML version of the rules in the rules_documents folder. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
@echo off | ||
|
||
REM Set the path to the Git repository dynamically | ||
set REPO_PATH=%CD% | ||
|
||
REM Convert backslashes to forward slashes in WSL paths | ||
set REPO_PATH=%REPO_PATH:\=/% | ||
|
||
REM Replace C: with /mnt/c/ | ||
set REPO_PATH=%REPO_PATH:C:=/mnt/c% | ||
|
||
echo Running commands in WSL... | ||
|
||
REM Check if dos2unix is installed in WSL | ||
wsl dos2unix --version >nul 2>&1 | ||
if %errorlevel% neq 0 ( | ||
echo Installing dos2unix... | ||
REM Add installation command for dos2unix here | ||
wsl sudo apt-get update | ||
wsl sudo apt-get install dos2unix | ||
) | ||
|
||
REM Create temporary copies of .sh scripts with Linux-style line endings using wsl cp (because Github checkout might automatically change them to Windows style which will stop the scripts from working) | ||
wsl cp %REPO_PATH%/.ci/adoc-to-tex.sh %REPO_PATH%/.ci/adoc-to-tex-temp.sh | ||
wsl cp %REPO_PATH%/.ci/tex-to-pdf.sh %REPO_PATH%/.ci/tex-to-pdf-temp.sh | ||
|
||
REM Convert line endings to LF (Linux-style) | ||
wsl dos2unix %REPO_PATH%/.ci/adoc-to-tex-temp.sh | ||
wsl dos2unix %REPO_PATH%/.ci/tex-to-pdf-temp.sh | ||
|
||
REM Run commands in WSL with sudo for Docker | ||
@echo Building rules | ||
wsl sudo docker run -v %REPO_PATH%:/documents asciidoctor/docker-asciidoctor .ci/adoc-to-tex-temp.sh onstage_rules | ||
wsl sudo docker run -v %REPO_PATH%:/documents mrshu/texlive-dblatex .ci/tex-to-pdf-temp.sh onstage_rules | ||
|
||
REM Clean up temporary files | ||
wsl rm %REPO_PATH%/.ci/adoc-to-tex-temp.sh | ||
wsl rm %REPO_PATH%/.ci/tex-to-pdf-temp.sh | ||
|
||
echo WSL commands completed. | ||
|
||
REM Pause the script and wait for any key to be pressed | ||
pause |