Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package actuated-cli for openSUSE:Factory 
checked in at 2024-11-12 19:22:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/actuated-cli (Old)
 and      /work/SRC/openSUSE:Factory/.actuated-cli.new.2017 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "actuated-cli"

Tue Nov 12 19:22:58 2024 rev:3 rq:1223560 version:0.2.10

Changes:
--------
--- /work/SRC/openSUSE:Factory/actuated-cli/actuated-cli.changes        
2024-10-31 16:10:41.290391334 +0100
+++ /work/SRC/openSUSE:Factory/.actuated-cli.new.2017/actuated-cli.changes      
2024-11-12 19:23:50.533542570 +0100
@@ -1,0 +2,16 @@
+Tue Nov 12 08:27:30 UTC 2024 - [email protected]
+
+- Update to version 0.2.10:
+  * Show a summary of jobs
+
+-------------------------------------------------------------------
+Tue Nov 12 08:23:32 UTC 2024 - [email protected]
+
+- Update to version 0.2.9:
+  * Update message
+  * Improve error handling for metering command
+  * Bind command to root
+  * Update vendor
+  * Add metering command
+
+-------------------------------------------------------------------

Old:
----
  actuated-cli-0.2.8.obscpio

New:
----
  actuated-cli-0.2.10.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ actuated-cli.spec ++++++
--- /var/tmp/diff_new_pack.7cHJQl/_old  2024-11-12 19:23:51.153568453 +0100
+++ /var/tmp/diff_new_pack.7cHJQl/_new  2024-11-12 19:23:51.153568453 +0100
@@ -19,7 +19,7 @@
 %define __arch_install_post export NO_BRP_STRIP_DEBUG=true
 
 Name:           actuated-cli
-Version:        0.2.8
+Version:        0.2.10
 Release:        0
 Summary:        CLI for actuated
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.7cHJQl/_old  2024-11-12 19:23:51.189569956 +0100
+++ /var/tmp/diff_new_pack.7cHJQl/_new  2024-11-12 19:23:51.193570123 +0100
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/self-actuated/actuated-cli</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v0.2.8</param>
+    <param name="revision">v0.2.10</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.7cHJQl/_old  2024-11-12 19:23:51.213570958 +0100
+++ /var/tmp/diff_new_pack.7cHJQl/_new  2024-11-12 19:23:51.217571126 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/self-actuated/actuated-cli</param>
-              <param 
name="changesrevision">40de12ccb7d68f99de894d53be6dd0969bab170a</param></service></servicedata>
+              <param 
name="changesrevision">3a559f07c1e762802cf4795b50ad9f4b50319c92</param></service></servicedata>
 (No newline at EOF)
 

++++++ actuated-cli-0.2.8.obscpio -> actuated-cli-0.2.10.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/actuated-cli-0.2.8/README.md 
new/actuated-cli-0.2.10/README.md
--- old/actuated-cli-0.2.8/README.md    2024-10-30 17:19:56.000000000 +0100
+++ new/actuated-cli-0.2.10/README.md   2024-11-07 22:29:21.000000000 +0100
@@ -108,6 +108,17 @@
     server1
 ```
 
+## View the metering snapshot from a VM
+
+Use the `--id` flag to specify the runner ID.
+
+```bash
+actuated-cli metering \
+    --owner actuated-samples \
+    --id ea5c285282620927689d90af3cfa3be2d5e2d004 \
+    server1
+```
+
 ## Check the logs of the actuated agent service
 
 Show the logs of the actuated agent binary running on your server.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/actuated-cli-0.2.8/cmd/jobs.go 
new/actuated-cli-0.2.10/cmd/jobs.go
--- old/actuated-cli-0.2.8/cmd/jobs.go  2024-10-30 17:19:56.000000000 +0100
+++ new/actuated-cli-0.2.10/cmd/jobs.go 2024-11-07 22:29:21.000000000 +0100
@@ -36,6 +36,8 @@
 
        cmd.Flags().BoolP("json", "j", false, "Request output in JSON format")
 
+       cmd.Flags().BoolP("urls", "u", false, "Include the URLs to the job in 
the output")
+
        return cmd
 }
 
@@ -51,6 +53,11 @@
                return err
        }
 
+       includeURL, err := cmd.Flags().GetBool("urls")
+       if err != nil {
+               return err
+       }
+
        staff, err := cmd.Flags().GetBool("staff")
        if err != nil {
                return err
@@ -75,7 +82,6 @@
        acceptJSON := true
 
        res, status, err := c.ListJobs(pat, owner, staff, acceptJSON)
-
        if err != nil {
                return err
        }
@@ -100,21 +106,40 @@
                if err := json.Unmarshal([]byte(res), &statuses); err != nil {
                        return err
                }
-               printEvents(os.Stdout, statuses, verbose)
+               printEvents(os.Stdout, statuses, verbose, includeURL)
        }
 
        return nil
 
 }
 
-func printEvents(w io.Writer, statuses []JobStatus, verbose bool) {
+func printEvents(w io.Writer, statuses []JobStatus, verbose, includeURL bool) {
        tabwriter := tabwriter.NewWriter(w, 0, 0, 1, ' ', tabwriter.TabIndent)
        if verbose {
-               fmt.Fprintf(tabwriter, "JOB 
ID\tOWNER\tREPO\tJOB\tRUNNER\tSERVER\tSTATUS\tSTARTED\tAGE\tETA\tLABELS\tURL\n")
+
+               st := "JOB 
ID\tOWNER\tREPO\tJOB\tRUNNER\tSERVER\tSTATUS\tSTARTED\tAGE\tETA\tLABELS"
+               if includeURL {
+                       st = st + "\tURL"
+               }
+
+               fmt.Fprintln(tabwriter, st)
        } else {
-               fmt.Fprintf(tabwriter, 
"OWNER\tREPO\tJOB\tSTATUS\tAGE\tETA\tURL\n")
+               st := "OWNER\tREPO\tJOB\tSTATUS\tAGE\tETA"
+               if includeURL {
+                       st = st + "\tURL"
+               }
+
+               fmt.Fprintln(tabwriter, st)
        }
 
+       var (
+               totalJobs    int
+               totalQueued  int
+               totalRunning int
+       )
+
+       totalJobs = len(statuses)
+
        for _, status := range statuses {
                duration := ""
 
@@ -122,6 +147,12 @@
                        duration = 
time.Since(*status.StartedAt).Round(time.Second).String()
                }
 
+               if status.Status == "queued" {
+                       totalQueued++
+               } else if status.Status == "in_progress" {
+                       totalRunning++
+               }
+
                eta := ""
                if status.Status != "queued" && status.AverageRuntime > 
time.Second*0 {
                        if status.StartedAt != nil {
@@ -138,7 +169,8 @@
                }
 
                if verbose {
-                       fmt.Fprintf(tabwriter, 
"%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",
+
+                       line := 
fmt.Sprintf("%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s",
                                status.JobID,
                                status.Owner,
                                status.Repo,
@@ -146,26 +178,43 @@
                                status.RunnerName,
                                status.AgentName,
                                status.Status,
-                               status.StartedAt.Format(time.RFC3339),
                                duration,
                                eta,
-                               strings.Join(status.Labels, ","),
-                               fmt.Sprintf("https://github.com/%s/%s/runs/%d";, 
status.Owner, status.Repo, status.JobID),
-                       )
+                               strings.Join(status.Labels, ","))
+                       if includeURL {
+                               line = line + 
fmt.Sprintf("\thttps://github.com/%s/%s/runs/%d";, status.Owner, status.Repo, 
status.JobID)
+                       }
+
+                       fmt.Fprintln(tabwriter, line)
                } else {
-                       fmt.Fprintf(tabwriter, "%s\t%s\t%s\t%s\t%s\t%s\t%s\n",
+                       line := fmt.Sprintf("%s\t%s\t%s\t%s\t%s\t%s",
                                status.Owner,
                                status.Repo,
                                status.JobName,
                                status.Status,
                                duration,
-                               eta,
-                               fmt.Sprintf("https://github.com/%s/%s/runs/%d";, 
status.Owner, status.Repo, status.JobID))
+                               eta)
 
-               }
+                       if includeURL {
+                               line = line + 
fmt.Sprintf("\thttps://github.com/%s/%s/runs/%d";, status.Owner, status.Repo, 
status.JobID)
+                       }
+
+                       fmt.Fprintln(tabwriter, line)
 
+               }
        }
+
        tabwriter.Flush()
+       if totalJobs > 0 {
+
+               st := "\nJOBS\tRUNNING\tQUEUED"
+
+               fmt.Fprintln(tabwriter, st)
+
+               fmt.Fprintf(tabwriter, "%d\t%d\t%d\n", totalJobs, totalRunning, 
totalQueued)
+               tabwriter.Flush()
+
+       }
 }
 
 type JobStatus struct {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/actuated-cli-0.2.8/cmd/logs.go 
new/actuated-cli-0.2.10/cmd/logs.go
--- old/actuated-cli-0.2.8/cmd/logs.go  2024-10-30 17:19:56.000000000 +0100
+++ new/actuated-cli-0.2.10/cmd/logs.go 2024-11-07 22:29:21.000000000 +0100
@@ -21,7 +21,7 @@
                Example: `# Logs from all VMs over the past 15 minutes
 actuated-cli logs --owner=OWNER --age=15m HOST
 
-# All logs from a specific VM using its hostname as the --id
+# Get the logs from a specific VM using its hostname as the --id
 actuated-cli logs --owner=OWNER --id=ID HOST
 `,
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/actuated-cli-0.2.8/cmd/metering.go 
new/actuated-cli-0.2.10/cmd/metering.go
--- old/actuated-cli-0.2.8/cmd/metering.go      1970-01-01 01:00:00.000000000 
+0100
+++ new/actuated-cli-0.2.10/cmd/metering.go     2024-11-07 22:29:21.000000000 
+0100
@@ -0,0 +1,88 @@
+package cmd
+
+import (
+       "fmt"
+       "net/http"
+       "os"
+       "strings"
+
+       "github.com/self-actuated/actuated-cli/pkg"
+       "github.com/spf13/cobra"
+)
+
+func makeMetering() *cobra.Command {
+       cmd := &cobra.Command{
+               Use:   "metering",
+               Short: "Fetch metering from a VM",
+               Long:  `Fetch the metering snapshot from a specific VM.`,
+
+               Example: `# Get the metering snapshot from a specific VM using 
its hostname as the --id
+actuated-cli metering --owner=OWNER --id=ID HOST
+
+# Pipe to vmmeter for pretty-printing
+actuated-cli metering --owner=OWNER --id=ID HOST | vmmeter
+`,
+       }
+
+       cmd.RunE = runMeteringE
+
+       cmd.Flags().StringP("owner", "o", "", "List logs owned by this user")
+       cmd.Flags().String("id", "", "ID variable for a specific runner VM 
hostname")
+
+       return cmd
+}
+
+func runMeteringE(cmd *cobra.Command, args []string) error {
+       if len(args) < 1 {
+               return fmt.Errorf("specify the host as an argument")
+       }
+       host := strings.TrimSpace(args[0])
+
+       pat, err := getPat(cmd)
+       if err != nil {
+               return err
+       }
+
+       staff, err := cmd.Flags().GetBool("staff")
+       if err != nil {
+               return err
+       }
+
+       owner, err := cmd.Flags().GetString("owner")
+       if err != nil {
+               return err
+       }
+
+       id, err := cmd.Flags().GetString("id")
+       if err != nil {
+               return err
+       }
+
+       if len(host) == 0 {
+               return fmt.Errorf("host is required")
+       }
+
+       if len(owner) == 0 {
+               return fmt.Errorf("owner is required")
+       }
+
+       if len(pat) == 0 {
+               return fmt.Errorf("pat is required")
+       }
+
+       c := pkg.NewClient(http.DefaultClient, os.Getenv("ACTUATED_URL"))
+
+       res, status, err := c.GetMetering(pat, owner, host, id, staff)
+       if err != nil {
+               return err
+       }
+
+       if status != http.StatusAccepted && status != http.StatusOK {
+               return fmt.Errorf("unexpected status code: %d, body: %s", 
status, res)
+       }
+
+       fmt.Println(res)
+
+       return nil
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/actuated-cli-0.2.8/cmd/root.go 
new/actuated-cli-0.2.10/cmd/root.go
--- old/actuated-cli-0.2.8/cmd/root.go  2024-10-30 17:19:56.000000000 +0100
+++ new/actuated-cli-0.2.10/cmd/root.go 2024-11-07 22:29:21.000000000 +0100
@@ -56,6 +56,8 @@
        root.AddCommand(MakeVersion())
 
        root.AddCommand(makeController())
+
+       root.AddCommand(makeMetering())
 }
 
 func Execute() error {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/actuated-cli-0.2.8/pkg/client.go 
new/actuated-cli-0.2.10/pkg/client.go
--- old/actuated-cli-0.2.8/pkg/client.go        2024-10-30 17:19:56.000000000 
+0100
+++ new/actuated-cli-0.2.10/pkg/client.go       2024-11-07 22:29:21.000000000 
+0100
@@ -1,6 +1,8 @@
 package pkg
 
 import (
+       "bytes"
+       "encoding/json"
        "fmt"
        "io"
        "log"
@@ -292,6 +294,72 @@
        return string(body), res.StatusCode, nil
 }
 
+func (c *Client) GetMetering(patStr, owner, host, id string, staff bool) 
(string, int, error) {
+
+       u, _ := url.Parse(c.baseURL)
+       u.Path = "/api/v1/metering"
+
+       q := u.Query()
+       q.Set("owner", owner)
+       q.Set("host", host)
+
+       if len(id) > 0 {
+               q.Set("id", id)
+       } else {
+               return "", http.StatusBadRequest, fmt.Errorf("id is required")
+       }
+
+       if staff {
+               q.Set("staff", "1")
+       }
+
+       u.RawQuery = q.Encode()
+
+       req, err := http.NewRequest(http.MethodGet, u.String(), nil)
+       if err != nil {
+               return "", http.StatusBadRequest, err
+       }
+
+       req.Header.Set("Authorization", "Bearer "+patStr)
+
+       if os.Getenv("DEBUG") == "1" {
+               sanitised := http.Header{}
+               for k, v := range req.Header {
+
+                       if k == "Authorization" {
+                               v = []string{"redacted"}
+                       }
+                       sanitised[k] = v
+               }
+
+               fmt.Printf("URL %s\nHeaders: %v\n", u.String(), sanitised)
+       }
+
+       res, err := c.httpClient.Do(req)
+       if err != nil {
+               return "", http.StatusBadRequest, err
+       }
+
+       var body []byte
+       if res.Body != nil {
+               defer res.Body.Close()
+               body, _ = io.ReadAll(res.Body)
+       }
+
+       if res.StatusCode != http.StatusOK &&
+               res.StatusCode != http.StatusAccepted {
+               return string(body), res.StatusCode, nil
+       }
+
+       var prettyJSON bytes.Buffer
+
+       if err = json.Indent(&prettyJSON, []byte(body), "", "  "); err != nil {
+               return "", http.StatusBadRequest, err
+       }
+
+       return prettyJSON.String(), res.StatusCode, nil
+}
+
 func (c *Client) GetAgentLogs(patStr, owner, host string, age time.Duration, 
staff bool) (string, int, error) {
 
        mins := int(age.Minutes())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/actuated-cli-0.2.8/vendor/github.com/docker/go-units/CONTRIBUTING.md 
new/actuated-cli-0.2.10/vendor/github.com/docker/go-units/CONTRIBUTING.md
--- old/actuated-cli-0.2.8/vendor/github.com/docker/go-units/CONTRIBUTING.md    
2024-10-30 17:19:56.000000000 +0100
+++ new/actuated-cli-0.2.10/vendor/github.com/docker/go-units/CONTRIBUTING.md   
1970-01-01 01:00:00.000000000 +0100
@@ -1,67 +0,0 @@
-# Contributing to go-units
-
-Want to hack on go-units? Awesome! Here are instructions to get you started.
-
-go-units is a part of the [Docker](https://www.docker.com) project, and follows
-the same rules and principles. If you're already familiar with the way
-Docker does things, you'll feel right at home.
-
-Otherwise, go read Docker's
-[contributions 
guidelines](https://github.com/docker/docker/blob/master/CONTRIBUTING.md),
-[issue 
triaging](https://github.com/docker/docker/blob/master/project/ISSUE-TRIAGE.md),
-[review 
process](https://github.com/docker/docker/blob/master/project/REVIEWING.md) and
-[branches and 
tags](https://github.com/docker/docker/blob/master/project/BRANCHES-AND-TAGS.md).
-
-### Sign your work
-
-The sign-off is a simple line at the end of the explanation for the patch. Your
-signature certifies that you wrote the patch or otherwise have the right to 
pass
-it on as an open-source patch. The rules are pretty simple: if you can certify
-the below (from [developercertificate.org](http://developercertificate.org/)):
-
-```
-Developer Certificate of Origin
-Version 1.1
-
-Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
-660 York Street, Suite 102,
-San Francisco, CA 94110 USA
-
-Everyone is permitted to copy and distribute verbatim copies of this
-license document, but changing it is not allowed.
-
-Developer's Certificate of Origin 1.1
-
-By making a contribution to this project, I certify that:
-
-(a) The contribution was created in whole or in part by me and I
-    have the right to submit it under the open source license
-    indicated in the file; or
-
-(b) The contribution is based upon previous work that, to the best
-    of my knowledge, is covered under an appropriate open source
-    license and I have the right under that license to submit that
-    work with modifications, whether created in whole or in part
-    by me, under the same open source license (unless I am
-    permitted to submit under a different license), as indicated
-    in the file; or
-
-(c) The contribution was provided directly to me by some other
-    person who certified (a), (b) or (c) and I have not modified
-    it.
-
-(d) I understand and agree that this project and the contribution
-    are public and that a record of the contribution (including all
-    personal information I submit with it, including my sign-off) is
-    maintained indefinitely and may be redistributed consistent with
-    this project or the open source license(s) involved.
-```
-
-Then you just add a line to every git commit message:
-
-    Signed-off-by: Joe Smith <[email protected]>
-
-Use your real name (sorry, no pseudonyms or anonymous contributions.)
-
-If you set your `user.name` and `user.email` git configs, you can sign your
-commit automatically with `git commit -s`.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/actuated-cli-0.2.8/vendor/github.com/docker/go-units/LICENSE 
new/actuated-cli-0.2.10/vendor/github.com/docker/go-units/LICENSE
--- old/actuated-cli-0.2.8/vendor/github.com/docker/go-units/LICENSE    
2024-10-30 17:19:56.000000000 +0100
+++ new/actuated-cli-0.2.10/vendor/github.com/docker/go-units/LICENSE   
1970-01-01 01:00:00.000000000 +0100
@@ -1,191 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        https://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   Copyright 2015 Docker, Inc.
-
-   Licensed 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
-
-       https://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.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/actuated-cli-0.2.8/vendor/github.com/docker/go-units/MAINTAINERS 
new/actuated-cli-0.2.10/vendor/github.com/docker/go-units/MAINTAINERS
--- old/actuated-cli-0.2.8/vendor/github.com/docker/go-units/MAINTAINERS        
2024-10-30 17:19:56.000000000 +0100
+++ new/actuated-cli-0.2.10/vendor/github.com/docker/go-units/MAINTAINERS       
1970-01-01 01:00:00.000000000 +0100
@@ -1,46 +0,0 @@
-# go-units maintainers file
-#
-# This file describes who runs the docker/go-units project and how.
-# This is a living document - if you see something out of date or missing, 
speak up!
-#
-# It is structured to be consumable by both humans and programs.
-# To extract its contents programmatically, use any TOML-compliant parser.
-#
-# This file is compiled into the MAINTAINERS file in docker/opensource.
-#
-[Org]
-       [Org."Core maintainers"]
-               people = [
-                       "akihirosuda",
-                       "dnephin",
-                       "thajeztah",
-                       "vdemeester",
-               ]
-
-[people]
-
-# A reference list of all people associated with the project.
-# All other sections should refer to people by their canonical key
-# in the people section.
-
-       # ADD YOURSELF HERE IN ALPHABETICAL ORDER
-
-       [people.akihirosuda]
-       Name = "Akihiro Suda"
-       Email = "[email protected]"
-       GitHub = "AkihiroSuda"
-
-       [people.dnephin]
-       Name = "Daniel Nephin"
-       Email = "[email protected]"
-       GitHub = "dnephin"
-       
-       [people.thajeztah]
-       Name = "Sebastiaan van Stijn"
-       Email = "[email protected]"
-       GitHub = "thaJeztah"
-
-       [people.vdemeester]
-       Name = "Vincent Demeester"
-       Email = "[email protected]"
-       GitHub = "vdemeester"
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/actuated-cli-0.2.8/vendor/github.com/docker/go-units/README.md 
new/actuated-cli-0.2.10/vendor/github.com/docker/go-units/README.md
--- old/actuated-cli-0.2.8/vendor/github.com/docker/go-units/README.md  
2024-10-30 17:19:56.000000000 +0100
+++ new/actuated-cli-0.2.10/vendor/github.com/docker/go-units/README.md 
1970-01-01 01:00:00.000000000 +0100
@@ -1,16 +0,0 @@
-[![GoDoc](https://godoc.org/github.com/docker/go-units?status.svg)](https://godoc.org/github.com/docker/go-units)
-
-# Introduction
-
-go-units is a library to transform human friendly measurements into machine 
friendly values.
-
-## Usage
-
-See the [docs in godoc](https://godoc.org/github.com/docker/go-units) for 
examples and documentation.
-
-## Copyright and license
-
-Copyright © 2015 Docker, Inc.
-
-go-units is licensed under the Apache License, Version 2.0.
-See [LICENSE](LICENSE) for the full text of the license.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/actuated-cli-0.2.8/vendor/github.com/docker/go-units/circle.yml 
new/actuated-cli-0.2.10/vendor/github.com/docker/go-units/circle.yml
--- old/actuated-cli-0.2.8/vendor/github.com/docker/go-units/circle.yml 
2024-10-30 17:19:56.000000000 +0100
+++ new/actuated-cli-0.2.10/vendor/github.com/docker/go-units/circle.yml        
1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
-dependencies:
-  post:
-    # install golint
-    - go get golang.org/x/lint/golint
-
-test:
-  pre:
-    # run analysis before tests
-    - go vet ./...
-    - test -z "$(golint ./... | tee /dev/stderr)"
-    - test -z "$(gofmt -s -l . | tee /dev/stderr)"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/actuated-cli-0.2.8/vendor/github.com/docker/go-units/duration.go 
new/actuated-cli-0.2.10/vendor/github.com/docker/go-units/duration.go
--- old/actuated-cli-0.2.8/vendor/github.com/docker/go-units/duration.go        
2024-10-30 17:19:56.000000000 +0100
+++ new/actuated-cli-0.2.10/vendor/github.com/docker/go-units/duration.go       
1970-01-01 01:00:00.000000000 +0100
@@ -1,35 +0,0 @@
-// Package units provides helper function to parse and print size and time 
units
-// in human-readable format.
-package units
-
-import (
-       "fmt"
-       "time"
-)
-
-// HumanDuration returns a human-readable approximation of a duration
-// (eg. "About a minute", "4 hours ago", etc.).
-func HumanDuration(d time.Duration) string {
-       if seconds := int(d.Seconds()); seconds < 1 {
-               return "Less than a second"
-       } else if seconds == 1 {
-               return "1 second"
-       } else if seconds < 60 {
-               return fmt.Sprintf("%d seconds", seconds)
-       } else if minutes := int(d.Minutes()); minutes == 1 {
-               return "About a minute"
-       } else if minutes < 60 {
-               return fmt.Sprintf("%d minutes", minutes)
-       } else if hours := int(d.Hours() + 0.5); hours == 1 {
-               return "About an hour"
-       } else if hours < 48 {
-               return fmt.Sprintf("%d hours", hours)
-       } else if hours < 24*7*2 {
-               return fmt.Sprintf("%d days", hours/24)
-       } else if hours < 24*30*2 {
-               return fmt.Sprintf("%d weeks", hours/24/7)
-       } else if hours < 24*365*2 {
-               return fmt.Sprintf("%d months", hours/24/30)
-       }
-       return fmt.Sprintf("%d years", int(d.Hours())/24/365)
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/actuated-cli-0.2.8/vendor/github.com/docker/go-units/size.go 
new/actuated-cli-0.2.10/vendor/github.com/docker/go-units/size.go
--- old/actuated-cli-0.2.8/vendor/github.com/docker/go-units/size.go    
2024-10-30 17:19:56.000000000 +0100
+++ new/actuated-cli-0.2.10/vendor/github.com/docker/go-units/size.go   
1970-01-01 01:00:00.000000000 +0100
@@ -1,154 +0,0 @@
-package units
-
-import (
-       "fmt"
-       "strconv"
-       "strings"
-)
-
-// See: http://en.wikipedia.org/wiki/Binary_prefix
-const (
-       // Decimal
-
-       KB = 1000
-       MB = 1000 * KB
-       GB = 1000 * MB
-       TB = 1000 * GB
-       PB = 1000 * TB
-
-       // Binary
-
-       KiB = 1024
-       MiB = 1024 * KiB
-       GiB = 1024 * MiB
-       TiB = 1024 * GiB
-       PiB = 1024 * TiB
-)
-
-type unitMap map[byte]int64
-
-var (
-       decimalMap = unitMap{'k': KB, 'm': MB, 'g': GB, 't': TB, 'p': PB}
-       binaryMap  = unitMap{'k': KiB, 'm': MiB, 'g': GiB, 't': TiB, 'p': PiB}
-)
-
-var (
-       decimapAbbrs = []string{"B", "kB", "MB", "GB", "TB", "PB", "EB", "ZB", 
"YB"}
-       binaryAbbrs  = []string{"B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", 
"ZiB", "YiB"}
-)
-
-func getSizeAndUnit(size float64, base float64, _map []string) (float64, 
string) {
-       i := 0
-       unitsLimit := len(_map) - 1
-       for size >= base && i < unitsLimit {
-               size = size / base
-               i++
-       }
-       return size, _map[i]
-}
-
-// CustomSize returns a human-readable approximation of a size
-// using custom format.
-func CustomSize(format string, size float64, base float64, _map []string) 
string {
-       size, unit := getSizeAndUnit(size, base, _map)
-       return fmt.Sprintf(format, size, unit)
-}
-
-// HumanSizeWithPrecision allows the size to be in any precision,
-// instead of 4 digit precision used in units.HumanSize.
-func HumanSizeWithPrecision(size float64, precision int) string {
-       size, unit := getSizeAndUnit(size, 1000.0, decimapAbbrs)
-       return fmt.Sprintf("%.*g%s", precision, size, unit)
-}
-
-// HumanSize returns a human-readable approximation of a size
-// capped at 4 valid numbers (eg. "2.746 MB", "796 KB").
-func HumanSize(size float64) string {
-       return HumanSizeWithPrecision(size, 4)
-}
-
-// BytesSize returns a human-readable size in bytes, kibibytes,
-// mebibytes, gibibytes, or tebibytes (eg. "44kiB", "17MiB").
-func BytesSize(size float64) string {
-       return CustomSize("%.4g%s", size, 1024.0, binaryAbbrs)
-}
-
-// FromHumanSize returns an integer from a human-readable specification of a
-// size using SI standard (eg. "44kB", "17MB").
-func FromHumanSize(size string) (int64, error) {
-       return parseSize(size, decimalMap)
-}
-
-// RAMInBytes parses a human-readable string representing an amount of RAM
-// in bytes, kibibytes, mebibytes, gibibytes, or tebibytes and
-// returns the number of bytes, or -1 if the string is unparseable.
-// Units are case-insensitive, and the 'b' suffix is optional.
-func RAMInBytes(size string) (int64, error) {
-       return parseSize(size, binaryMap)
-}
-
-// Parses the human-readable size string into the amount it represents.
-func parseSize(sizeStr string, uMap unitMap) (int64, error) {
-       // TODO: rewrite to use strings.Cut if there's a space
-       // once Go < 1.18 is deprecated.
-       sep := strings.LastIndexAny(sizeStr, "01234567890. ")
-       if sep == -1 {
-               // There should be at least a digit.
-               return -1, fmt.Errorf("invalid size: '%s'", sizeStr)
-       }
-       var num, sfx string
-       if sizeStr[sep] != ' ' {
-               num = sizeStr[:sep+1]
-               sfx = sizeStr[sep+1:]
-       } else {
-               // Omit the space separator.
-               num = sizeStr[:sep]
-               sfx = sizeStr[sep+1:]
-       }
-
-       size, err := strconv.ParseFloat(num, 64)
-       if err != nil {
-               return -1, err
-       }
-       // Backward compatibility: reject negative sizes.
-       if size < 0 {
-               return -1, fmt.Errorf("invalid size: '%s'", sizeStr)
-       }
-
-       if len(sfx) == 0 {
-               return int64(size), nil
-       }
-
-       // Process the suffix.
-
-       if len(sfx) > 3 { // Too long.
-               goto badSuffix
-       }
-       sfx = strings.ToLower(sfx)
-       // Trivial case: b suffix.
-       if sfx[0] == 'b' {
-               if len(sfx) > 1 { // no extra characters allowed after b.
-                       goto badSuffix
-               }
-               return int64(size), nil
-       }
-       // A suffix from the map.
-       if mul, ok := uMap[sfx[0]]; ok {
-               size *= float64(mul)
-       } else {
-               goto badSuffix
-       }
-
-       // The suffix may have extra "b" or "ib" (e.g. KiB or MB).
-       switch {
-       case len(sfx) == 2 && sfx[1] != 'b':
-               goto badSuffix
-       case len(sfx) == 3 && sfx[1:] != "ib":
-               goto badSuffix
-       }
-
-       return int64(size), nil
-
-badSuffix:
-       return -1, fmt.Errorf("invalid suffix: '%s'", sfx)
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/actuated-cli-0.2.8/vendor/github.com/docker/go-units/ulimit.go 
new/actuated-cli-0.2.10/vendor/github.com/docker/go-units/ulimit.go
--- old/actuated-cli-0.2.8/vendor/github.com/docker/go-units/ulimit.go  
2024-10-30 17:19:56.000000000 +0100
+++ new/actuated-cli-0.2.10/vendor/github.com/docker/go-units/ulimit.go 
1970-01-01 01:00:00.000000000 +0100
@@ -1,123 +0,0 @@
-package units
-
-import (
-       "fmt"
-       "strconv"
-       "strings"
-)
-
-// Ulimit is a human friendly version of Rlimit.
-type Ulimit struct {
-       Name string
-       Hard int64
-       Soft int64
-}
-
-// Rlimit specifies the resource limits, such as max open files.
-type Rlimit struct {
-       Type int    `json:"type,omitempty"`
-       Hard uint64 `json:"hard,omitempty"`
-       Soft uint64 `json:"soft,omitempty"`
-}
-
-const (
-       // magic numbers for making the syscall
-       // some of these are defined in the syscall package, but not all.
-       // Also since Windows client doesn't get access to the syscall package, 
need to
-       //      define these here
-       rlimitAs         = 9
-       rlimitCore       = 4
-       rlimitCPU        = 0
-       rlimitData       = 2
-       rlimitFsize      = 1
-       rlimitLocks      = 10
-       rlimitMemlock    = 8
-       rlimitMsgqueue   = 12
-       rlimitNice       = 13
-       rlimitNofile     = 7
-       rlimitNproc      = 6
-       rlimitRss        = 5
-       rlimitRtprio     = 14
-       rlimitRttime     = 15
-       rlimitSigpending = 11
-       rlimitStack      = 3
-)
-
-var ulimitNameMapping = map[string]int{
-       //"as":         rlimitAs, // Disabled since this doesn't seem usable 
with the way Docker inits a container.
-       "core":       rlimitCore,
-       "cpu":        rlimitCPU,
-       "data":       rlimitData,
-       "fsize":      rlimitFsize,
-       "locks":      rlimitLocks,
-       "memlock":    rlimitMemlock,
-       "msgqueue":   rlimitMsgqueue,
-       "nice":       rlimitNice,
-       "nofile":     rlimitNofile,
-       "nproc":      rlimitNproc,
-       "rss":        rlimitRss,
-       "rtprio":     rlimitRtprio,
-       "rttime":     rlimitRttime,
-       "sigpending": rlimitSigpending,
-       "stack":      rlimitStack,
-}
-
-// ParseUlimit parses and returns a Ulimit from the specified string.
-func ParseUlimit(val string) (*Ulimit, error) {
-       parts := strings.SplitN(val, "=", 2)
-       if len(parts) != 2 {
-               return nil, fmt.Errorf("invalid ulimit argument: %s", val)
-       }
-
-       if _, exists := ulimitNameMapping[parts[0]]; !exists {
-               return nil, fmt.Errorf("invalid ulimit type: %s", parts[0])
-       }
-
-       var (
-               soft int64
-               hard = &soft // default to soft in case no hard was set
-               temp int64
-               err  error
-       )
-       switch limitVals := strings.Split(parts[1], ":"); len(limitVals) {
-       case 2:
-               temp, err = strconv.ParseInt(limitVals[1], 10, 64)
-               if err != nil {
-                       return nil, err
-               }
-               hard = &temp
-               fallthrough
-       case 1:
-               soft, err = strconv.ParseInt(limitVals[0], 10, 64)
-               if err != nil {
-                       return nil, err
-               }
-       default:
-               return nil, fmt.Errorf("too many limit value arguments - %s, 
can only have up to two, `soft[:hard]`", parts[1])
-       }
-
-       if *hard != -1 {
-               if soft == -1 {
-                       return nil, fmt.Errorf("ulimit soft limit must be less 
than or equal to hard limit: soft: -1 (unlimited), hard: %d", *hard)
-               }
-               if soft > *hard {
-                       return nil, fmt.Errorf("ulimit soft limit must be less 
than or equal to hard limit: %d > %d", soft, *hard)
-               }
-       }
-
-       return &Ulimit{Name: parts[0], Soft: soft, Hard: *hard}, nil
-}
-
-// GetRlimit returns the RLimit corresponding to Ulimit.
-func (u *Ulimit) GetRlimit() (*Rlimit, error) {
-       t, exists := ulimitNameMapping[u.Name]
-       if !exists {
-               return nil, fmt.Errorf("invalid ulimit name %s", u.Name)
-       }
-
-       return &Rlimit{Type: t, Soft: uint64(u.Soft), Hard: uint64(u.Hard)}, nil
-}
-
-func (u *Ulimit) String() string {
-       return fmt.Sprintf("%s=%d:%d", u.Name, u.Soft, u.Hard)
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/actuated-cli-0.2.8/vendor/modules.txt 
new/actuated-cli-0.2.10/vendor/modules.txt
--- old/actuated-cli-0.2.8/vendor/modules.txt   2024-10-30 17:19:56.000000000 
+0100
+++ new/actuated-cli-0.2.10/vendor/modules.txt  2024-11-07 22:29:21.000000000 
+0100
@@ -34,7 +34,6 @@
 github.com/cloudflare/circl/sign/ed448
 # github.com/docker/go-units v0.5.0
 ## explicit
-github.com/docker/go-units
 # github.com/google/go-github/v52 v52.0.0
 ## explicit; go 1.17
 github.com/google/go-github/v52/github

++++++ actuated-cli.obsinfo ++++++
--- /var/tmp/diff_new_pack.7cHJQl/_old  2024-11-12 19:23:51.545584819 +0100
+++ /var/tmp/diff_new_pack.7cHJQl/_new  2024-11-12 19:23:51.549584985 +0100
@@ -1,5 +1,5 @@
 name: actuated-cli
-version: 0.2.8
-mtime: 1730305196
-commit: 40de12ccb7d68f99de894d53be6dd0969bab170a
+version: 0.2.10
+mtime: 1731014961
+commit: 3a559f07c1e762802cf4795b50ad9f4b50319c92
 

++++++ vendor.tar.gz ++++++

Reply via email to