refactor: improve build scripts

This commit is contained in:
CismonX 2024-04-02 14:12:03 +08:00
parent ad685014d2
commit 13feb8a1f4
Signed by: cismonx
GPG Key ID: 3094873E29A482FB
2 changed files with 35 additions and 27 deletions

View File

@ -1,41 +1,45 @@
#!/usr/bin/env bash
#!/bin/sh
#
# Copyright (C) 2021 CismonX <admin@cismon.net>
# Copyright (C) 2021,2024 CismonX <admin@cismon.net>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty, provided the copyright notice and
# this notice are preserved. This file is offered as-is, without any warranty.
#
VSIX_FILE_NAME=texinfo-$(json -f package.json version).vsix
PACKAGE_JSON_CLEANUP_JS=$(cat ./scripts/package-json-cleanup.js)
set -e
vsce package --baseContentUrl=$(json -f package.json repository.url)/tree
version=$(json -f package.json version)
vsix_file_name=texinfo-$version.vsix
vsce package --baseContentUrl="$(json -f package.json repository.url)/tree"
unzip -d "$vsix_file_name.d" "$vsix_file_name"
cd "$vsix_file_name.d"
minify_xml() {
minify-xml --no-shorten-namespaces --no-remove-unused-namespaces \
--no-remove-unused-default-namespace -i "$1"
}
minify_xml '[Content_Types].xml'
minify_xml extension.vsixmanifest
unzip -d $VSIX_FILE_NAME{.d,}
cd $VSIX_FILE_NAME.d
MINIFY_XML_OPTIONS='--no-shorten-namespaces
--no-remove-unused-namespaces
--no-remove-unused-default-namespace'
minify-xml $MINIFY_XML_OPTIONS --output \[Content_Types\].xml{,}
minify-xml $MINIFY_XML_OPTIONS --output extension.vsixmanifest{,}
cd extension
# Minify JSON files.
json -j0 -I -e "$PACKAGE_JSON_CLEANUP_JS" -f package.json
json -j0 -I -e "$(cat ../../scripts/package-json-cleanup.js)" -f package.json
perl -pi -e 'chomp if eof' package.json
json5 -o language-configuration.json{,}
json5 language-configuration.json > _ && mv _ language-configuration.json
# Remove comments from Markdown files.
tail -n +9 README.md > _ && mv _ README.md
tail -n +9 CHANGELOG.md > _ && mv _ CHANGELOG.md
cd ext
# Minify Perl scripts.
# You can install perltidy with `cpan Perl::Tidy`
if [[ -x "$(command -v perltidy)" ]]; then
if command -v perltidy; then
perltidy --mangle -dac -b html-preview.pm
rm html-preview.pm.bak
fi
cd ../../..
cd ../../..
# Re-package .vsix file.
node ./scripts/make-vsix.js $VSIX_FILE_NAME
rm -r $VSIX_FILE_NAME.d
node ./scripts/make-vsix.js "$vsix_file_name"
rm -r "$vsix_file_name.d"

View File

@ -1,17 +1,21 @@
#!/usr/bin/env sh
#!/bin/sh
#
# Copyright (C) 2020,2021 CismonX <admin@cismon.net>
# Copyright (C) 2020,2021,2024 CismonX <admin@cismon.net>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty, provided the copyright notice and
# this notice are preserved. This file is offered as-is, without any warranty.
#
SRC_PATH=./node_modules/language-texinfo
DEST_PATH=./out/grammars
mkdir -p $DEST_PATH
# Convert TextMate grammar to JSON, as VSCode cannot recognize CSON ones.
cson2json $SRC_PATH/grammars/texinfo.cson | json5 > $DEST_PATH/texinfo.json
set -e
VERSION=$(json -f package.json version)
echo "@set VERSION $VERSION" > ./doc/version.texi
src_path=./node_modules/language-texinfo
dest_path=./out/grammars
mkdir -p $dest_path
# Convert TextMate grammar to JSON, since VSCode cannot recognize CSON ones.
cson2json $src_path/grammars/texinfo.cson | json5 > $dest_path/texinfo.json
version=$(json -f package.json version)
echo "@set VERSION $version" > ./doc/version.texi