Skip to content

Commit

Permalink
chore(dist): replace wget to curl to download swagger-ui (apache#2277)
Browse files Browse the repository at this point in the history
Main Changes:
1. replace `wget` by `curl` when downloading `swagger-ui`
2. silence the output of `curl` and `tar` commands
3. reuse the existing `v4.15.5.tar.gz` before downloading
4. avoid downloading `swagger-ui` in non-Linux platforms to prevent build failures (there might be a cross-platform build approach available 🤔)
5. wrapp the script content within `<![CDATA[ ... ]]>` blocks ensures that the script retains its original format when generating the `dist.sh` script (also suppresses automatic indentation)
6. remove intermediate files at the end of the script

**An alternative approach**, during the generation of the `dist.sh` script, only the `${final.name}` property from the build process is utilized. It might be possible to separately store a `dist.sh` script within hugegraph-dist, then use `sed` during the build process to replace the value of `${final.name}`, **thereby avoiding the need to embed script content within the pom file**.

---------

Co-authored-by: imbajin <jin@apache.org>
  • Loading branch information
2 people authored and DanGuge committed Sep 23, 2023
1 parent f305686 commit b1d325d
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions hugegraph-server/hugegraph-dist/dist.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with this
# work for additional information regarding copyright ownership. The ASF
# licenses this file to You under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
VERSION=4.15.5

curl --version >/dev/null 2>&1 ||
{
echo 'ERROR: Please install `curl` first if you need `swagger-ui`'
exit
}

# TODO: perhaps it's necessary verify the checksum before reusing the existing tar
if [[ ! -f v$VERSION.tar.gz ]]; then
curl -s -S -L -o v$VERSION.tar.gz \
https://github.com/swagger-api/swagger-ui/archive/refs/tags/v$VERSION.tar.gz ||
{
echo 'ERROR: Download `swagger-ui` failed, please check your network connection'
exit
}
fi

tar zxf v$VERSION.tar.gz -C . >/dev/null 2>&1

echo "window.onload = function() { window.ui = SwaggerUIBundle({
url:'/openapi.json',dom_id:'#swagger-ui',deepLinking:true,layout:'StandaloneLayout',
presets:[SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset ],
plugins:[SwaggerUIBundle.plugins.DownloadUrl]});};" > \
swagger-ui-$VERSION/dist/swagger-initializer.js

# conceal the VERSION from the outside
mv swagger-ui-$VERSION swagger-ui
echo 'INFO: Successfully download `swagger-ui`'

0 comments on commit b1d325d

Please sign in to comment.