Skip to content

Commit 09e320b

Browse files
committed
Use Pandoc for generated docs
1 parent 31655e7 commit 09e320b

7 files changed

Lines changed: 118 additions & 282 deletions

File tree

.github/workflows/build-mac.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,12 @@ jobs:
9191
cd iPlug2/Dependencies/IPlug
9292
./download-clap-sdks.sh ${{env.CLAP_VER}}
9393
94+
- name: Install pandoc
95+
uses: pandoc/actions/setup@v1
96+
97+
- name: Install typst
98+
uses: typst-community/setup-typst@v5
99+
94100
- name: Validate installer docs
95101
shell: bash
96102
run: |

.github/workflows/build-win.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,17 @@ jobs:
8080
cd iPlug2/Dependencies/IPlug
8181
./download-clap-sdks.sh ${{env.CLAP_VER}}
8282
83+
- name: Install pandoc
84+
uses: pandoc/actions/setup@v1
85+
86+
- name: Install typst
87+
uses: typst-community/setup-typst@v5
88+
8389
- name: Validate installer docs
8490
shell: pwsh
8591
run: |
92+
$ErrorActionPreference = 'Stop'
93+
$PSNativeCommandUseErrorActionPreference = $true
8694
cd ${{matrix.project}}
8795
python scripts/prepare_installer_docs.py win
8896
if (!(Test-Path "build-win\installer-docs\license.txt")) { throw "Missing generated license.txt" }

.github/workflows/release-native.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ jobs:
5151
with:
5252
submodules: recursive
5353

54+
- name: Install pandoc
55+
uses: pandoc/actions/setup@v1
56+
57+
- name: Install typst
58+
uses: typst-community/setup-typst@v5
59+
5460
- name: Get VST3 SDK
5561
run: |
5662
cd iPlug2/Dependencies/IPlug

TemplateProject/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ iPlug2 template project
44

55
## Distribution docs
66

7-
Installer text lives in `installer/*.md` and the user manual lives in `manual/TemplateProject manual.md`. The packaging scripts generate installer-compatible RTF/TXT files and a PDF manual from those Markdown sources during release builds.
7+
Installer text lives in `installer/*.md` and the user manual lives in `manual/TemplateProject manual.md`. The packaging scripts use Pandoc to generate installer-compatible RTF/TXT files and a PDF manual from those Markdown sources during release builds.

TemplateProject/scripts/makeinstaller-mac.sh

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -43,65 +43,65 @@ RSRCS="~/Music/${PRODUCT_NAME}/Resources"
4343
OUTPUT_BASE_FILENAME="${PRODUCT_NAME} Installer.pkg"
4444

4545
TARGET_DIR="./build-mac/installer"
46-
PKG_DIR=${TARGET_DIR}/pkgs
47-
RESOURCES_DIR=${TARGET_DIR}/resources
46+
PKG_DIR="${TARGET_DIR}/pkgs"
47+
RESOURCES_DIR="${TARGET_DIR}/resources"
4848

49-
if [[ ! -d ${TARGET_DIR} ]]; then
50-
mkdir ${TARGET_DIR}
49+
if [[ ! -d "${TARGET_DIR}" ]]; then
50+
mkdir "${TARGET_DIR}"
5151
fi
5252

53-
if [[ ! -d ${PKG_DIR} ]]; then
54-
mkdir ${PKG_DIR}
53+
if [[ ! -d "${PKG_DIR}" ]]; then
54+
mkdir "${PKG_DIR}"
5555
fi
5656

5757
python3 ./scripts/prepare_installer_docs.py mac || exit 1
5858

5959
build_flavor()
6060
{
61-
TMPDIR=${TARGET_DIR}/tmp
62-
flavor=$1
63-
flavorprod=$2
64-
ident=$3
65-
loc=$4
61+
TMPDIR="${TARGET_DIR}/tmp"
62+
flavor="$1"
63+
flavorprod="$2"
64+
ident="$3"
65+
loc="$4"
6666

6767
echo --- BUILDING ${PRODUCT_NAME}_${flavor}.pkg ---
6868

69-
mkdir -p $TMPDIR
70-
cp -R -L $PRODUCTS/$flavorprod $TMPDIR
69+
mkdir -p "${TMPDIR}"
70+
cp -R -L "${PRODUCTS}/${flavorprod}" "${TMPDIR}"
7171

72-
pkgbuild --root $TMPDIR --identifier $ident --version $VERSION --install-location $loc ${PKG_DIR}/${PRODUCT_NAME}_${flavor}.pkg #|| exit 1
72+
pkgbuild --root "${TMPDIR}" --identifier "${ident}" --version "${VERSION}" --install-location "${loc}" "${PKG_DIR}/${PRODUCT_NAME}_${flavor}.pkg" #|| exit 1
7373

74-
rm -r $TMPDIR
74+
rm -r "${TMPDIR}"
7575
}
7676

7777
# try to build VST2 package
78-
if [[ -d $PRODUCTS/$VST2 ]]; then
79-
build_flavor "VST2" $VST2 "com.AcmeInc.vst2.pkg.${PRODUCT_NAME}" "/Library/Audio/Plug-Ins/VST"
78+
if [[ -d "${PRODUCTS}/${VST2}" ]]; then
79+
build_flavor "VST2" "${VST2}" "com.AcmeInc.vst2.pkg.${PRODUCT_NAME}" "/Library/Audio/Plug-Ins/VST"
8080
fi
8181

8282
# # try to build VST3 package
83-
if [[ -d $PRODUCTS/$VST3 ]]; then
84-
build_flavor "VST3" $VST3 "com.AcmeInc.vst3.pkg.${PRODUCT_NAME}" "/Library/Audio/Plug-Ins/VST3"
83+
if [[ -d "${PRODUCTS}/${VST3}" ]]; then
84+
build_flavor "VST3" "${VST3}" "com.AcmeInc.vst3.pkg.${PRODUCT_NAME}" "/Library/Audio/Plug-Ins/VST3"
8585
fi
8686

8787
# # try to build AU package
88-
if [[ -d $PRODUCTS/$AU ]]; then
89-
build_flavor "AU" $AU "com.AcmeInc.au.pkg.${PRODUCT_NAME}" "/Library/Audio/Plug-Ins/Components"
88+
if [[ -d "${PRODUCTS}/${AU}" ]]; then
89+
build_flavor "AU" "${AU}" "com.AcmeInc.au.pkg.${PRODUCT_NAME}" "/Library/Audio/Plug-Ins/Components"
9090
fi
9191

9292
# # try to build AAX package
93-
if [[ -d $PRODUCTS/$AAX ]]; then
94-
build_flavor "AAX" $AAX "com.AcmeInc.aax.pkg.${PRODUCT_NAME}" ""/Library/Application Support/Avid/Audio/Plug-Ins""
93+
if [[ -d "${PRODUCTS}/${AAX}" ]]; then
94+
build_flavor "AAX" "${AAX}" "com.AcmeInc.aax.pkg.${PRODUCT_NAME}" "/Library/Application Support/Avid/Audio/Plug-Ins"
9595
fi
9696

9797
# try to build App package
98-
if [[ -d $PRODUCTS/$APP ]]; then
99-
build_flavor "APP" $APP "com.AcmeInc.app.pkg.${PRODUCT_NAME}" "/Applications"
98+
if [[ -d "${PRODUCTS}/${APP}" ]]; then
99+
build_flavor "APP" "${APP}" "com.AcmeInc.app.pkg.${PRODUCT_NAME}" "/Applications"
100100
fi
101101

102102
# try to build CLAP package
103-
if [[ -d $PRODUCTS/$CLAP ]]; then
104-
build_flavor "CLAP" $CLAP "com.AcmeInc.clap.pkg.${PRODUCT_NAME}" "/Library/Audio/Plug-Ins/CLAP"
103+
if [[ -d "${PRODUCTS}/${CLAP}" ]]; then
104+
build_flavor "CLAP" "${CLAP}" "com.AcmeInc.clap.pkg.${PRODUCT_NAME}" "/Library/Audio/Plug-Ins/CLAP"
105105
fi
106106

107107
# write build info to resources folder
@@ -120,33 +120,33 @@ fi
120120

121121
# create distribution.xml
122122

123-
if [[ -d $PRODUCTS/$VST2 ]]; then
123+
if [[ -d "${PRODUCTS}/${VST2}" ]]; then
124124
VST2_PKG_REF="<pkg-ref id=\"com.AcmeInc.vst2.pkg.${PRODUCT_NAME}\"/>"
125125
VST2_CHOICE="<line choice=\"com.AcmeInc.vst2.pkg.${PRODUCT_NAME}\"/>"
126126
VST2_CHOICE_DEF="<choice id=\"com.AcmeInc.vst2.pkg.${PRODUCT_NAME}\" visible=\"true\" start_selected=\"true\" title=\"VST2 Plug-in\"><pkg-ref id=\"com.AcmeInc.vst2.pkg.${PRODUCT_NAME}\"/></choice><pkg-ref id=\"com.AcmeInc.vst2.pkg.${PRODUCT_NAME}\" version=\"${VERSION}\" onConclusion=\"none\">${PRODUCT_NAME}_VST2.pkg</pkg-ref>"
127127
fi
128-
if [[ -d $PRODUCTS/$VST3 ]]; then
128+
if [[ -d "${PRODUCTS}/${VST3}" ]]; then
129129
VST3_PKG_REF="<pkg-ref id=\"com.AcmeInc.vst3.pkg.${PRODUCT_NAME}\"/>"
130130
VST3_CHOICE="<line choice=\"com.AcmeInc.vst3.pkg.${PRODUCT_NAME}\"/>"
131131
VST3_CHOICE_DEF="<choice id=\"com.AcmeInc.vst3.pkg.${PRODUCT_NAME}\" visible=\"true\" start_selected=\"true\" title=\"VST3 Plug-in\"><pkg-ref id=\"com.AcmeInc.vst3.pkg.${PRODUCT_NAME}\"/></choice><pkg-ref id=\"com.AcmeInc.vst3.pkg.${PRODUCT_NAME}\" version=\"${VERSION}\" onConclusion=\"none\">${PRODUCT_NAME}_VST3.pkg</pkg-ref>"
132132
fi
133-
if [[ -d $PRODUCTS/$AU ]]; then
133+
if [[ -d "${PRODUCTS}/${AU}" ]]; then
134134
AU_PKG_REF="<pkg-ref id=\"com.AcmeInc.au.pkg.${PRODUCT_NAME}\"/>"
135135
AU_CHOICE="<line choice=\"com.AcmeInc.au.pkg.${PRODUCT_NAME}\"/>"
136136
AU_CHOICE_DEF="<choice id=\"com.AcmeInc.au.pkg.${PRODUCT_NAME}\" visible=\"true\" start_selected=\"true\" title=\"Audio Unit (v2) Plug-in\"><pkg-ref id=\"com.AcmeInc.au.pkg.${PRODUCT_NAME}\"/></choice><pkg-ref id=\"com.AcmeInc.au.pkg.${PRODUCT_NAME}\" version=\"${VERSION}\" onConclusion=\"none\">${PRODUCT_NAME}_AU.pkg</pkg-ref>"
137137
fi
138-
if [[ -d $PRODUCTS/$AAX ]]; then
138+
if [[ -d "${PRODUCTS}/${AAX}" ]]; then
139139
AAX_PKG_REF="<pkg-ref id=\"com.AcmeInc.aax.pkg.${PRODUCT_NAME}\"/>"
140140
AAX_CHOICE="<line choice=\"com.AcmeInc.aax.pkg.${PRODUCT_NAME}\"/>"
141141
AAX_CHOICE_DEF="<choice id=\"com.AcmeInc.aax.pkg.${PRODUCT_NAME}\" visible=\"true\" start_selected=\"true\" title=\"AAX Plug-in\"><pkg-ref id=\"com.AcmeInc.aax.pkg.${PRODUCT_NAME}\"/></choice><pkg-ref id=\"com.AcmeInc.aax.pkg.${PRODUCT_NAME}\" version=\"${VERSION}\" onConclusion=\"none\">${PRODUCT_NAME}_AAX.pkg</pkg-ref>"
142142
fi
143-
if [[ -d $PRODUCTS/$APP ]]; then
143+
if [[ -d "${PRODUCTS}/${APP}" ]]; then
144144
APP_PKG_REF="<pkg-ref id=\"com.AcmeInc.app.pkg.${PRODUCT_NAME}\"/>"
145145
APP_CHOICE="<line choice=\"com.AcmeInc.app.pkg.${PRODUCT_NAME}\"/>"
146146
APP_CHOICE_DEF="<choice id=\"com.AcmeInc.app.pkg.${PRODUCT_NAME}\" visible=\"true\" start_selected=\"true\" title=\"Stand-alone App\"><pkg-ref id=\"com.AcmeInc.app.pkg.${PRODUCT_NAME}\"/></choice><pkg-ref id=\"com.AcmeInc.app.pkg.${PRODUCT_NAME}\" version=\"${VERSION}\" onConclusion=\"none\">${PRODUCT_NAME}_APP.pkg</pkg-ref>"
147147
fi
148148

149-
if [[ -d $PRODUCTS/$CLAP ]]; then
149+
if [[ -d "${PRODUCTS}/${CLAP}" ]]; then
150150
CLAP_PKG_REF="<pkg-ref id=\"com.AcmeInc.clap.pkg.${PRODUCT_NAME}\"/>"
151151
CLAP_CHOICE="<line choice=\"com.AcmeInc.clap.pkg.${PRODUCT_NAME}\"/>"
152152
CLAP_CHOICE_DEF="<choice id=\"com.AcmeInc.clap.pkg.${PRODUCT_NAME}\" visible=\"true\" start_selected=\"true\" title=\"CLAP Plug-in\"><pkg-ref id=\"com.AcmeInc.clap.pkg.${PRODUCT_NAME}\"/></choice><pkg-ref id=\"com.AcmeInc.clap.pkg.${PRODUCT_NAME}\" version=\"${VERSION}\" onConclusion=\"none\">${PRODUCT_NAME}_CLAP.pkg</pkg-ref>"
@@ -158,7 +158,7 @@ fi
158158
# RES_CHOICE_DEF="<choice id=\"com.AcmeInc.resources.pkg.${PRODUCT_NAME}\" visible=\"true\" enabled=\"false\" selected=\"true\" title=\"Shared Resources\"><pkg-ref id=\"com.AcmeInc.resources.pkg.${PRODUCT_NAME}\"/></choice><pkg-ref id=\"com.AcmeInc.resources.pkg.${PRODUCT_NAME}\" version=\"${VERSION}\" onConclusion=\"none\">${PRODUCT_NAME}_RES.pkg</pkg-ref>"
159159
# fi
160160

161-
cat > ${TARGET_DIR}/distribution.xml << XMLEND
161+
cat > "${TARGET_DIR}/distribution.xml" << XMLEND
162162
<?xml version="1.0" encoding="utf-8"?>
163163
<installer-gui-script minSpecVersion="1">
164164
<title>${PRODUCT_NAME} ${VERSION}</title>
@@ -196,8 +196,8 @@ XMLEND
196196
# build installation bundle
197197
# --resources .
198198

199-
productbuild --distribution ${TARGET_DIR}/distribution.xml --resources ${RESOURCES_DIR} --package-path ${PKG_DIR} "${TARGET_DIR}/$OUTPUT_BASE_FILENAME"
199+
productbuild --distribution "${TARGET_DIR}/distribution.xml" --resources "${RESOURCES_DIR}" --package-path "${PKG_DIR}" "${TARGET_DIR}/${OUTPUT_BASE_FILENAME}"
200200

201-
rm ${TARGET_DIR}/distribution.xml
202-
rm -r $PKG_DIR
203-
rm -r $RESOURCES_DIR
201+
rm "${TARGET_DIR}/distribution.xml"
202+
rm -r "${PKG_DIR}"
203+
rm -r "${RESOURCES_DIR}"

0 commit comments

Comments
 (0)