diff options
author | Andrew Dolgov <[email protected]> | 2022-11-23 21:14:33 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2022-11-23 21:14:33 +0300 |
commit | 0c8af4992cb0f7589dcafaad65ada12753c64594 (patch) | |
tree | 18e83d068c3e7dd2499331de977782b382279396 /vendor/aws/aws-crt-php/prepare_package_xml.sh |
initial
Diffstat (limited to 'vendor/aws/aws-crt-php/prepare_package_xml.sh')
-rwxr-xr-x | vendor/aws/aws-crt-php/prepare_package_xml.sh | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/vendor/aws/aws-crt-php/prepare_package_xml.sh b/vendor/aws/aws-crt-php/prepare_package_xml.sh new file mode 100755 index 0000000..9e77582 --- /dev/null +++ b/vendor/aws/aws-crt-php/prepare_package_xml.sh @@ -0,0 +1,144 @@ +#!/bin/zsh +zparseopts -A opts -name: -user: -email: -version: -notes: +if [[ $# -lt 10 ]] +then + echo "Usage ${0} --name NAME, --user USER --email EMAIL --version VERSION --notes NOTES" + exit 1 +fi +NAME="${opts[--name]}" +USER="${opts[--user]}" +EMAIL="${opts[--email]}" +VERSION="${opts[--version]}" +NOTES="${opts[--notes]}" + +TODAY=$(date -u +%Y-%m-%d) + +cat package.xml-template_pre \ + | sed "s/{{{NAME}}}/$NAME/g" \ + | sed "s/{{{USER}}}/$USER/g" \ + | sed "s/{{{EMAIL}}}/$EMAIL/g" \ + | sed "s/{{{TODAY}}}/$TODAY/g" \ + | sed "s/{{{VERSION}}}/$VERSION/g" \ + | sed "s/{{{NOTES}}}/$NOTES/g" + +source_ext='(c|cc|h|cpp|hpp|m4|w32|ini|frag|cmake|inl|in|py|gnu|yaml|def|pl|S|s|errordata|go|lds|num|asm|mod|peg|mk|rs|toml|sh)' +doc_ext='(md|json|html|dot|graphml|png|gn|sha1|css|rst|)' + +special_docs='(LICENSE*|NOTICE|changelog.txt|CHANGELOG|THIRD-PARTY|README*|readme|METADATA|CONTRIBUTORS|UPDATING|doc.config)' +special_tests='(ci-test.sh|format-check.sh|run_tests*|sanitizer-blacklist.txt|run-clang-tidy.sh|benchmark-build-run.sh|break-tests.sh|generate-coverage.sh|test.xml)' +special_src='(gen_api.php|gen_stub.php|CMakeLists.txt|post.sh|postun.sh|Makefile*|build-buildspec.sh|build-deps.sh|objects.txt|go.*|BUILD*|DEPS|install_and_run.sh|codemod.sh|requirements.txt)' +skip_files='(package.xml*|prepare_release.sh|codereview.settings|*.o|*.a|*.obj|*.lib|break-tests-android.sh|whitespace.txt|prepare_package_xml.sh|crypto_test_data.cc|*.pdf|*.svg|*.docx|cbmc-proof.txt|codecov*|litani*|*.toml)' + +special_scripts='(awscrt.stub.php)' + +skip_directories='(tests|test|AWSCRTAndroidTestRunner|docker-images|codebuild|fuzz|verfication|third_party|docs|generated-src|aws-lc|aws-crt-sys)' + +process_file() { + if (( $# == 0 )) + then + echo "ERROR: filename not passed" + exit 1 + fi + if [[ $1 = $~skip_files ]] + then + # This file is not part of the release bundle + return 0 + fi + + echo -n '<file name="'"$1"'" role="' + # Special cases + case ${a} in + $~special_scripts) + echo -n 'script' + ;; + $~special_docs) + echo -n 'doc' + ;; + $~special_tests) + echo -n 'test' + ;; + $~special_src) + echo -n 'src' + ;; + *) + # Extension based cases + case ${a:t:e} in + $~source_ext) + echo -n 'src' + ;; + $~doc_ext) + echo -n 'doc' + ;; + php) + echo -n 'script' + ;; + *) + echo "${a:t:e} - ${a} - FAIL TO RECOGNIZE" + exit 1 + esac + esac + echo '"/>' + return 0 +} + + +process_dir() { + if (( $# == 0 )) + then + echo "WARNING: dirname not passed" + exit 1 + fi + if [[ "${1}" = $~skip_directories ]] + then + return 0 + fi + echo '<dir name="'"$1"'">' + cd "$1" + for a in * + do + if [[ -f ${a} ]] + then process_file "${a}" + else process_dir "${a}" + fi + done + # Special cases for compiler features placed in tests directories in and s2n + if [[ "${1}" = "s2n" && -d tests ]] + then + echo '<dir name="tests">' + echo '<dir name="features">' + cd tests/features + for a in * + do + process_file "${a}" + done + cd ../.. + echo '</dir>' + echo '</dir>' + fi + echo '</dir>' + cd .. + return 0 +} + +echo '<dir name="/">' +for a in * +do + if [[ ${a} == 'tests' ]] + then + echo '<dir name="tests">' + for b in tests/* + do + echo '<file name="'$( basename "${b}" )'" role="test" />' + done + echo '</dir>' + continue + fi + if [[ -f ${a} ]] + then process_file "${a}" + else process_dir "${a}" + fi +done +echo '</dir>' + +cat package.xml-template_post + |