vscode-texinfo/scripts/package.sh

46 lines
1.4 KiB
Bash
Executable File

#!/bin/sh
#
# 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.
#
set -e
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
cd extension
# Minify JSON files.
json -j0 -I -e "$(cat ../../scripts/package-json-cleanup.js)" -f package.json
perl -pi -e 'chomp if eof' package.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 command -v perltidy; then
perltidy --mangle -dac -b html-preview.pm
rm html-preview.pm.bak
fi
cd ../../..
# Re-package .vsix file.
node ./scripts/make-vsix.js "$vsix_file_name"
rm -r "$vsix_file_name.d"