[Libguestfs] [PATCH libnbd] golang: make-dist.sh: Generate the list file
Richard W.M. Jones
rjones at redhat.com
Sun Feb 6 19:13:46 UTC 2022
On Sun, Feb 06, 2022 at 07:21:02PM +0200, Nir Soffer wrote:
> Generated the list file when creating the distribution. Since the Go
> tool treat the list file on the proxy server as the source of truth, we
> do the same. The new list file is created by downloading the current
> list file, sorting it, and appending the current version.
>
> Creating a distribution tarball requires now access to
> download.libguestfs.org.
>
> With this change the distribution tarball can be extract on the server
> without any additional manual process.
>
> Signed-off-by: Nir Soffer <nsoffer at redhat.com>
> ---
> golang/make-dist.sh | 16 +++++-----------
> 1 file changed, 5 insertions(+), 11 deletions(-)
>
> diff --git a/golang/make-dist.sh b/golang/make-dist.sh
> index a590e6c6..5fe006ff 100755
> --- a/golang/make-dist.sh
> +++ b/golang/make-dist.sh
> @@ -86,48 +86,42 @@ rm -rf libguestfs.org
> #
> # libguestfs.org
> # └── libnbd
> # ├── @latest
> # └── @v
> # ├── list
> # ├── v1.11.4.info
> # ├── v1.11.4.mod
> # └── v1.11.4.zip
> #
> -# We create @latest and @v/*{.info,mod,zip} here.
> -#
> -# The "@v/list" file must be created on the web server after uploading
> -# a new release:
> -#
> -# $ cd libguestfs.org/libnbd/@v
> -# $ ls -1 v*.info | awk -F.info '{print $1}' > list
> -# $ cat list
> -# v1.11.3
> -# v1.11.4
> -#
> # See https://golang.org/ref/mod#serving-from-proxy
>
> module_dir=libguestfs.org/libnbd
> v_dir=$module_dir/@v
>
> mkdir -p $v_dir
>
> # Go wants a string in RFC 3339 format, git strict ISO 8601 format is
> # compatible.
> info="{
> \"Version\": \"$version\",
> \"Time\": \"$(git show -s --format=%cI)\"
> }"
> echo "$info" > $module_dir/@latest
> echo "$info" > $v_dir/$version.info
>
> cp go.mod $v_dir/$version.mod
> mv $version.zip $v_dir
>
> +# Create the list file by amending the curent file on the server.
> +list_url=https://download.libguestfs.org/libnbd/golang/libguestfs.org/libnbd/@v/list
> +curl --silent --show-error "$list_url" | sort > $v_dir/list
> +grep -q "$version" $v_dir/list || echo "$version" >> $v_dir/list
> +
> # Create tarball to upload and extract on the webserver. It should be
> # extracted in the directory pointed by the "go-import" meta tag.
> output=$PWD/libnbd-golang-$version.tar.gz
> tar czf $output libguestfs.org
>
> rm -rf libguestfs.org
>
> echo output written to $output
Yes this seems a reasonable approach.
ACK
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines. Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v
More information about the Libguestfs
mailing list