From a17b5a188610752eb7af389ac5362a204ba17994 Mon Sep 17 00:00:00 2001 From: DeedleFake Date: Mon, 3 Oct 2022 11:49:30 -0400 Subject: [PATCH] cmd/trayscale: remove frames from inline buttons and set activatable widgets for applicable action rows (#26) * cmd/trayscale: remove some button frames * cmd/gtkbuildergen: fix `"has-frame"` * cmd/trayscale: regenerate * cmd/trayscale: set activatable widget for IP address rows * cmd/gtkbuilder: add a workaround for the workaround for property children * cmd/trayscale: make various action row widgets activatable * meta: update some dependencies --- cmd/gtkbuildergen/init.tmpl | 2 +- cmd/gtkbuildergen/uidef.go | 8 +++++-- cmd/trayscale/app.go | 2 ++ cmd/trayscale/peerpage.ui | 4 ++++ cmd/trayscale/trayscale.cmb | 4 ++++ cmd/trayscale/ui.go | 4 ++++ go.mod | 20 ++++++++-------- go.sum | 47 ++++++++++++++++++++++--------------- 8 files changed, 59 insertions(+), 32 deletions(-) diff --git a/cmd/gtkbuildergen/init.tmpl b/cmd/gtkbuildergen/init.tmpl index 1e33c45..5fe6d2c 100644 --- a/cmd/gtkbuildergen/init.tmpl +++ b/cmd/gtkbuildergen/init.tmpl @@ -2,7 +2,7 @@ {{- $used := newValueSet -}} {{range .Properties -}} - {{$id}}.SetObjectProperty({{.Name | printf "%q"}}, {{$used.Add .Value}}) + {{$id}}.SetObjectProperty({{.Name | printf "%q"}}, {{if .Track}}{{$used.Add .Value}}{{else}}{{.Value}}{{end}}) {{end -}} {{range $i, $c := .Children -}} {{- $cid := or .Object.ID (printf "%v%v" $id $i) -}} diff --git a/cmd/gtkbuildergen/uidef.go b/cmd/gtkbuildergen/uidef.go index 0562ce2..581924a 100644 --- a/cmd/gtkbuildergen/uidef.go +++ b/cmd/gtkbuildergen/uidef.go @@ -116,9 +116,9 @@ var ( func (p Property) Value() string { switch p.Name { - case "width-request", "height-request", "default-width", "default-height", "content", "stack", "spacing", "margin-top", "margin-bottom", "header-suffix": + case "width-request", "height-request", "default-width", "default-height", "content", "stack", "spacing", "margin-top", "margin-bottom", "header-suffix", "activatable-widget": return p.RawValue - case "show-start-title-buttons", "show-end-title-buttons", "primary", "vexpand", "hexpand", "visible": + case "show-start-title-buttons", "show-end-title-buttons", "primary", "vexpand", "hexpand", "visible", "has-frame": b, err := strconv.ParseBool(p.RawValue) if err != nil { return p.RawValue @@ -133,6 +133,10 @@ func (p Property) Value() string { } } +func (p Property) Track() bool { + return p.Name != "activatable-widget" +} + type Child struct { XMLName xml.Name `xml:"child"` diff --git a/cmd/trayscale/app.go b/cmd/trayscale/app.go index 66bac36..0dfe243 100644 --- a/cmd/trayscale/app.go +++ b/cmd/trayscale/app.go @@ -119,6 +119,7 @@ func (a *App) updatePeerPage(page *peerPage, peer *ipnstate.PeerStatus, prefs *i copyButton := gtk.NewButtonFromIconName("edit-copy-symbolic") copyButton.SetMarginTop(12) // Why is this necessary? copyButton.SetMarginBottom(12) + copyButton.SetHasFrame(false) copyButton.SetTooltipText("Copy to Clipboard") copyButton.ConnectClicked(func() { copyButton.Clipboard().Set(glib.NewValue(ipstr)) @@ -132,6 +133,7 @@ func (a *App) updatePeerPage(page *peerPage, peer *ipnstate.PeerStatus, prefs *i iprow.SetTitle(ipstr) iprow.SetObjectProperty("title-selectable", true) iprow.AddSuffix(copyButton) + iprow.SetActivatableWidget(copyButton) page.container.IPGroup.Add(iprow) page.addrRows = append(page.addrRows, iprow) diff --git a/cmd/trayscale/peerpage.ui b/cmd/trayscale/peerpage.ui index 4ce593a..54b4d0d 100644 --- a/cmd/trayscale/peerpage.ui +++ b/cmd/trayscale/peerpage.ui @@ -20,6 +20,7 @@ Options + AdvertiseExitNodeSwitch Advertise exit node @@ -31,6 +32,7 @@ + AllowLANAccessSwitch Allow LAN access @@ -48,6 +50,7 @@ Network Check + False view-refresh-symbolic @@ -154,6 +157,7 @@ Misc. + ExitNodeSwitch security-high-symbolic Use as exit node diff --git a/cmd/trayscale/trayscale.cmb b/cmd/trayscale/trayscale.cmb index 4ac8417..187d7fb 100644 --- a/cmd/trayscale/trayscale.cmb +++ b/cmd/trayscale/trayscale.cmb @@ -90,6 +90,7 @@ (2,7,"GtkOrientable","orientation","vertical",None,None,None,None,None), (2,8,"AdwPreferencesGroup","title","Tailscale IPs",None,None,None,None,None), (2,9,"AdwPreferencesGroup","title","Misc.",None,None,None,None,None), + (2,11,"AdwActionRow","activatable-widget","16",None,None,None,None,None), (2,11,"AdwActionRow","icon-name","security-high-symbolic",None,None,None,None,None), (2,11,"AdwPreferencesRow","title","Use as exit node",None,None,None,None,None), (2,12,"AdwPreferencesRow","title","Bytes received",None,None,None,None,None), @@ -102,14 +103,17 @@ (2,23,"AdwPreferencesRow","title","Online",None,None,None,None,None), (2,25,"AdwPreferencesRow","title","Last handshake",None,None,None,None,None), (2,27,"AdwPreferencesGroup","title","Options",None,None,None,None,None), + (2,28,"AdwActionRow","activatable-widget","29",None,None,None,None,None), (2,28,"AdwPreferencesRow","title","Advertise exit node",None,None,None,None,None), (2,29,"GtkWidget","margin-bottom","12",None,None,None,None,None), (2,29,"GtkWidget","margin-top","12",None,None,None,None,None), + (2,30,"AdwActionRow","activatable-widget","31",None,None,None,None,None), (2,30,"AdwPreferencesRow","title","Allow LAN access",None,None,None,None,None), (2,31,"GtkWidget","margin-bottom","12",None,None,None,None,None), (2,31,"GtkWidget","margin-top","12",None,None,None,None,None), (2,32,"AdwPreferencesGroup","header-suffix","33",None,None,None,None,None), (2,32,"AdwPreferencesGroup","title","Network Check",None,None,None,None,None), + (2,33,"GtkButton","has-frame","False",None,None,None,None,None), (2,33,"GtkButton","icon-name","view-refresh-symbolic",None,None,None,None,None), (2,34,"AdwPreferencesRow","title","UDP",None,None,None,None,None), (2,34,"GtkWidget","visible","False",None,None,None,None,None), diff --git a/cmd/trayscale/ui.go b/cmd/trayscale/ui.go index 709e873..a02d09d 100644 --- a/cmd/trayscale/ui.go +++ b/cmd/trayscale/ui.go @@ -195,12 +195,14 @@ func NewPeerPage() *PeerPage { OptionsGroup.Add(AdvertiseExitNodeRow) OptionsGroup.Add(AllowLANAccessRow) + AdvertiseExitNodeRow.SetObjectProperty("activatable-widget", AdvertiseExitNodeSwitch) AdvertiseExitNodeRow.SetObjectProperty("title", "Advertise exit node") AdvertiseExitNodeRow.AddSuffix(AdvertiseExitNodeSwitch) AdvertiseExitNodeSwitch.SetObjectProperty("margin-bottom", 12) AdvertiseExitNodeSwitch.SetObjectProperty("margin-top", 12) + AllowLANAccessRow.SetObjectProperty("activatable-widget", AllowLANAccessSwitch) AllowLANAccessRow.SetObjectProperty("title", "Allow LAN access") AllowLANAccessRow.AddSuffix(AllowLANAccessSwitch) @@ -220,6 +222,7 @@ func NewPeerPage() *PeerPage { NetCheckGroup.Add(PreferredDERPRow) NetCheckGroup.Add(DERPLatencies) + NetCheckButton.SetObjectProperty("has-frame", false) NetCheckButton.SetObjectProperty("icon-name", "view-refresh-symbolic") LastNetCheckRow.SetObjectProperty("title", "Last run") @@ -276,6 +279,7 @@ func NewPeerPage() *PeerPage { MiscGroup.Add(RxBytesRow) MiscGroup.Add(TxBytesRow) + ExitNodeRow.SetObjectProperty("activatable-widget", ExitNodeSwitch) ExitNodeRow.SetObjectProperty("icon-name", "security-high-symbolic") ExitNodeRow.SetObjectProperty("title", "Use as exit node") ExitNodeRow.AddSuffix(ExitNodeSwitch) diff --git a/go.mod b/go.mod index 2626539..89c00db 100644 --- a/go.mod +++ b/go.mod @@ -5,8 +5,8 @@ go 1.18 require ( deedles.dev/mk v0.1.0 github.com/diamondburned/gotk4-adwaita/pkg v0.0.0-20220417101956-dcc3707dc307 - github.com/diamondburned/gotk4/pkg v0.0.0-20220914035633-4e35b1a80848 - golang.org/x/exp v0.0.0-20220916125017-b168a2c6b86b + github.com/diamondburned/gotk4/pkg v0.0.0-20220925114733-8c5529b9df15 + golang.org/x/exp v0.0.0-20221002003631-540bb7301a08 tailscale.com v1.30.2 ) @@ -20,21 +20,21 @@ require ( github.com/hdevalence/ed25519consensus v0.1.0 // indirect github.com/josharian/native v1.0.0 // indirect github.com/jsimonetti/rtnetlink v1.2.2 // indirect - github.com/klauspost/compress v1.15.10 // indirect - github.com/mdlayher/netlink v1.6.0 // indirect + github.com/klauspost/compress v1.15.11 // indirect + github.com/mdlayher/netlink v1.6.2 // indirect github.com/mdlayher/socket v0.2.3 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect github.com/tailscale/goupnp v1.0.1-0.20210804011211-c64d0f06ea05 // indirect github.com/tcnksm/go-httpstat v0.2.0 // indirect github.com/x448/float16 v0.8.4 // indirect go4.org/mem v0.0.0-20220726221520-4f986261bf13 // indirect - go4.org/netipx v0.0.0-20220812043211-3cc044ffd68d // indirect + go4.org/netipx v0.0.0-20220925034521-797b0c90d8ab // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20220617031537-928513b29760 // indirect - golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 // indirect - golang.org/x/net v0.0.0-20220909164309-bea034e7d591 // indirect - golang.org/x/sync v0.0.0-20220907140024-f12130a52804 // indirect - golang.org/x/sys v0.0.0-20220915200043-7b5979e65e41 // indirect - golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 // indirect + golang.org/x/crypto v0.0.0-20220926161630-eccd6366d1be // indirect + golang.org/x/net v0.0.0-20221002022538-bcab6841153b // indirect + golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0 // indirect + golang.org/x/sys v0.0.0-20220928140112-f11e5e49a4ec // indirect + golang.org/x/time v0.0.0-20220922220347-f3bd1da661af // indirect golang.zx2c4.com/wireguard/windows v0.5.3 // indirect nhooyr.io/websocket v1.8.7 // indirect ) diff --git a/go.sum b/go.sum index 681582a..0e98b25 100644 --- a/go.sum +++ b/go.sum @@ -15,8 +15,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/diamondburned/gotk4-adwaita/pkg v0.0.0-20220417101956-dcc3707dc307 h1:7SvMQLBSty7Y+0gMBYi20JE4+rM+VbLWhZGMVKK3VQg= github.com/diamondburned/gotk4-adwaita/pkg v0.0.0-20220417101956-dcc3707dc307/go.mod h1:ltZ0ffX+lhfOw+HlN3pROJ1fVJwo2hbFbLsRjlUtrlg= -github.com/diamondburned/gotk4/pkg v0.0.0-20220914035633-4e35b1a80848 h1:B4XG/rXxhcTgQbhL2WPdSJAGvqTnsuzCu2A3CmAaJlg= -github.com/diamondburned/gotk4/pkg v0.0.0-20220914035633-4e35b1a80848/go.mod h1:pjOFSZWuNWiBwEqt+4/zfPr1JsNWY43h4B81ht3S3Ag= +github.com/diamondburned/gotk4/pkg v0.0.0-20220925114733-8c5529b9df15 h1:KjAeagrrvm20/EFCYiY41/NTnOlisFSVG4UnvwybTJ8= +github.com/diamondburned/gotk4/pkg v0.0.0-20220925114733-8c5529b9df15/go.mod h1:pjOFSZWuNWiBwEqt+4/zfPr1JsNWY43h4B81ht3S3Ag= github.com/frankban/quicktest v1.14.0 h1:+cqqvzZV87b4adx/5ayVOaYZ2CrvM4ejQvUdBzPPUss= github.com/frankban/quicktest v1.14.0/go.mod h1:NeW+ay9A/U67EYXNFA1nPE8e/tnQv/09mUdL/ijj8og= github.com/fxamacker/cbor/v2 v2.4.0 h1:ri0ArlOR+5XunOP8CRUowT0pSJOwhW098ZCUyskZD88= @@ -61,8 +61,8 @@ github.com/jsimonetti/rtnetlink v1.2.2/go.mod h1:T3BJ2qI9ZJFkUYWLrzECdcXhCvaGRfn github.com/json-iterator/go v1.1.9 h1:9yzud/Ht36ygwatGx56VwCZtlI/2AD15T1X2sjSuGns= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.15.10 h1:Ai8UzuomSCDw90e1qNMtb15msBXsNpH6gzkkENQNcJo= -github.com/klauspost/compress v1.15.10/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= +github.com/klauspost/compress v1.15.11 h1:Lcadnb3RKGin4FYM/orgq0qde+nc15E5Cbqg4B9Sx9c= +github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= @@ -74,8 +74,9 @@ github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= -github.com/mdlayher/netlink v1.6.0 h1:rOHX5yl7qnlpiVkFWoqccueppMtXzeziFjWAjLg6sz0= github.com/mdlayher/netlink v1.6.0/go.mod h1:0o3PlBmGst1xve7wQ7j/hwpNaFaH4qCRyWCdcZk8/vA= +github.com/mdlayher/netlink v1.6.2 h1:D2zGSkvYsJ6NreeED3JiVTu1lj2sIYATqSaZlhPzUgQ= +github.com/mdlayher/netlink v1.6.2/go.mod h1:O1HXX2sIWSMJ3Qn1BYZk1yZM+7iMki/uYGGiwGyq/iU= github.com/mdlayher/socket v0.1.1/go.mod h1:mYV5YIZAfHh4dzDVzI8x8tWLWCliuX8Mon5Awbj+qDs= github.com/mdlayher/socket v0.2.3 h1:XZA2X2TjdOwNoNPVPclRCURoX/hokBY8nkTmRZFEheM= github.com/mdlayher/socket v0.2.3/go.mod h1:bz12/FozYNH/VbvC3q7TRIK/Y6dH1kCKsXaUeXi/FmY= @@ -103,23 +104,28 @@ github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= go4.org/mem v0.0.0-20220726221520-4f986261bf13 h1:CbZeCBZ0aZj8EfVgnqQcYZgf0lpZ3H9rmp5nkDTAst8= go4.org/mem v0.0.0-20220726221520-4f986261bf13/go.mod h1:reUoABIJ9ikfM5sgtSF3Wushcza7+WeD01VB9Lirh3g= -go4.org/netipx v0.0.0-20220812043211-3cc044ffd68d h1:ggxwEf5eu0l8v+87VhX1czFh8zJul3hK16Gmruxn7hw= -go4.org/netipx v0.0.0-20220812043211-3cc044ffd68d/go.mod h1:tgPU4N2u9RByaTN3NC2p9xOzyFpte4jYwsIIRF7XlSc= +go4.org/netipx v0.0.0-20220925034521-797b0c90d8ab h1:+yW1yrZ09EYNu1spCUOHBBNRbrLnfmutwyhbhCv3b6Q= +go4.org/netipx v0.0.0-20220925034521-797b0c90d8ab/go.mod h1:tgPU4N2u9RByaTN3NC2p9xOzyFpte4jYwsIIRF7XlSc= go4.org/unsafe/assume-no-moving-gc v0.0.0-20220617031537-928513b29760 h1:FyBZqvoA/jbNzuAWLQE2kG820zMAkcilx6BMjGbL/E4= go4.org/unsafe/assume-no-moving-gc v0.0.0-20220617031537-928513b29760/go.mod h1:FftLjUGFEDu5k8lt0ddY+HcrH/qU/0qk+H8j9/nTl3E= -golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 h1:Y/gsMcFOcR+6S6f3YeMKl5g+dZMEWqcz5Czj/GWYbkM= -golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/exp v0.0.0-20220916125017-b168a2c6b86b h1:SCE/18RnFsLrjydh/R/s5EVvHoZprqEQUuoxK8q2Pc4= -golang.org/x/exp v0.0.0-20220916125017-b168a2c6b86b/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20220926161630-eccd6366d1be h1:fmw3UbQh+nxngCAHrDCCztao/kbYFnWjoqop8dHx05A= +golang.org/x/crypto v0.0.0-20220926161630-eccd6366d1be/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/exp v0.0.0-20221002003631-540bb7301a08 h1:LtBIgSqNhkuC9gA3BFjGy5obHQT1lnmNsMDFSqWzQ5w= +golang.org/x/exp v0.0.0-20221002003631-540bb7301a08/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= golang.org/x/exp/typeparams v0.0.0-20220328175248-053ad81199eb h1:fP6C8Xutcp5AlakmT/SkQot0pMicROAsEX7OfNPuG10= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20210928044308-7d9f5e0b762b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220909164309-bea034e7d591 h1:D0B/7al0LLrVC8aWF4+oxpv/m8bc7ViFfVS8/gXGdqI= -golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.0.0-20220923203811-8be639271d50/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.0.0-20221002022538-bcab6841153b h1:6e93nYa3hNqAvLr0pD4PN1fFS+gKzp2zAXqrnTCstqU= +golang.org/x/net v0.0.0-20221002022538-bcab6841153b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220907140024-f12130a52804 h1:0SH2R3f1b1VmIMG7BXbEZCBUu2dKmHschSmjqGUrW8A= -golang.org/x/sync v0.0.0-20220907140024-f12130a52804/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220923202941-7f9b1623fab7/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0 h1:cu5kTvlzcw1Q5S9f5ip1/cpiB4nXvw1XYzFPGgzLUOY= +golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -128,18 +134,21 @@ golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220408201424-a24fb2fb8a0f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220915200043-7b5979e65e41 h1:ohgcoMbSofXygzo6AD2I1kz3BFmW1QArPYTtwEM3UXc= -golang.org/x/sys v0.0.0-20220915200043-7b5979e65e41/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220928140112-f11e5e49a4ec h1:BkDtF2Ih9xZ7le9ndzTA7KJow28VbQW3odyk/8drmuI= +golang.org/x/sys v0.0.0-20220928140112-f11e5e49a4ec/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8-0.20211105212822-18b340fc7af2 h1:GLw7MR8AfAG2GmGcmVgObFOHXYypgGjnGno25RDwn3Y= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 h1:ftMN5LMiBFjbzleLqtoBZk7KdJwhuybIU+FckUHgoyQ= -golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20220922220347-f3bd1da661af h1:Yx9k8YCG3dvF87UAn2tu2HQLf2dt/eR1bXxpLMWeH+Y= +golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=