[Libguestfs] [PATCH libnbd] golang: make-dist.sh: Generate the list file

Richard W.M. Jones rjones at redhat.com
Tue Feb 8 08:26:11 UTC 2022


On Mon, Feb 07, 2022 at 01:28:30AM +0200, Nir Soffer wrote:
> On Sun, Feb 6, 2022 at 9:13 PM Richard W.M. Jones <rjones at redhat.com> wrote:
> >
> > 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
> 
> Pushed as 3895a43f3e9f00f1d612d619caf62adb7ace2772
> 
> This should be tested with the actual server, so make sure it
> will work for the next release.
> 
> Can you do a build from current git and upload it to the server?

When I do the next 1.11 release I'll test it, won't be long.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.  http://libguestfs.org




More information about the Libguestfs mailing list