mirror of
https://github.com/containers/podman.git
synced 2025-09-11 00:54:42 +08:00
vendor c/image v5.4.2
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
This commit is contained in:
10
go.mod
10
go.mod
@ -12,7 +12,7 @@ require (
|
|||||||
github.com/containers/buildah v1.14.6-0.20200402210551-e9a6703edee2
|
github.com/containers/buildah v1.14.6-0.20200402210551-e9a6703edee2
|
||||||
github.com/containers/common v0.8.1
|
github.com/containers/common v0.8.1
|
||||||
github.com/containers/conmon v2.0.14+incompatible
|
github.com/containers/conmon v2.0.14+incompatible
|
||||||
github.com/containers/image/v5 v5.3.1
|
github.com/containers/image/v5 v5.4.2
|
||||||
github.com/containers/psgo v1.4.0
|
github.com/containers/psgo v1.4.0
|
||||||
github.com/containers/storage v1.18.2
|
github.com/containers/storage v1.18.2
|
||||||
github.com/coreos/go-systemd/v22 v22.0.0
|
github.com/coreos/go-systemd/v22 v22.0.0
|
||||||
@ -58,10 +58,10 @@ require (
|
|||||||
github.com/varlink/go v0.0.0-20190502142041-0f1d566d194b
|
github.com/varlink/go v0.0.0-20190502142041-0f1d566d194b
|
||||||
github.com/vishvananda/netlink v1.1.0
|
github.com/vishvananda/netlink v1.1.0
|
||||||
go.etcd.io/bbolt v1.3.4
|
go.etcd.io/bbolt v1.3.4
|
||||||
golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975
|
golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59
|
||||||
golang.org/x/net v0.0.0-20200301022130-244492dfa37a
|
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e
|
||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58
|
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a
|
||||||
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527
|
golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775
|
||||||
gopkg.in/yaml.v2 v2.2.8
|
gopkg.in/yaml.v2 v2.2.8
|
||||||
k8s.io/api v0.17.4
|
k8s.io/api v0.17.4
|
||||||
k8s.io/apimachinery v0.17.4
|
k8s.io/apimachinery v0.17.4
|
||||||
|
26
go.sum
26
go.sum
@ -80,10 +80,14 @@ github.com/containers/conmon v2.0.14+incompatible/go.mod h1:hgwZ2mtuDrppv78a/cOB
|
|||||||
github.com/containers/image/v5 v5.2.1/go.mod h1:TfhmLwH+v1/HBVPIWH7diLs8XwcOkP3c7t7JFgqaUEc=
|
github.com/containers/image/v5 v5.2.1/go.mod h1:TfhmLwH+v1/HBVPIWH7diLs8XwcOkP3c7t7JFgqaUEc=
|
||||||
github.com/containers/image/v5 v5.3.1 h1:AL0pR0d1ho3kLUAuBr+wnFlXuD3ChzKVljk0M8JBJHQ=
|
github.com/containers/image/v5 v5.3.1 h1:AL0pR0d1ho3kLUAuBr+wnFlXuD3ChzKVljk0M8JBJHQ=
|
||||||
github.com/containers/image/v5 v5.3.1/go.mod h1:JnCfhbTIL9IxPPZm1JoQwiE0S9KET46M4OZySJsLylk=
|
github.com/containers/image/v5 v5.3.1/go.mod h1:JnCfhbTIL9IxPPZm1JoQwiE0S9KET46M4OZySJsLylk=
|
||||||
|
github.com/containers/image/v5 v5.4.2 h1:o4q0PyOXbe5+I+qrPMU/SYDxsmCgY9GnttXR7jPk+kk=
|
||||||
|
github.com/containers/image/v5 v5.4.2/go.mod h1:UsU+3n/uhw0ddok1V5BF6gbrLeAA15snhskzEXDzIyk=
|
||||||
github.com/containers/libtrust v0.0.0-20190913040956-14b96171aa3b h1:Q8ePgVfHDplZ7U33NwHZkrVELsZP5fYj9pM5WBZB2GE=
|
github.com/containers/libtrust v0.0.0-20190913040956-14b96171aa3b h1:Q8ePgVfHDplZ7U33NwHZkrVELsZP5fYj9pM5WBZB2GE=
|
||||||
github.com/containers/libtrust v0.0.0-20190913040956-14b96171aa3b/go.mod h1:9rfv8iPl1ZP7aqh9YA68wnZv2NUDbXdcdPHVz0pFbPY=
|
github.com/containers/libtrust v0.0.0-20190913040956-14b96171aa3b/go.mod h1:9rfv8iPl1ZP7aqh9YA68wnZv2NUDbXdcdPHVz0pFbPY=
|
||||||
github.com/containers/ocicrypt v0.0.0-20190930154801-b87a4a69c741 h1:8tQkOcednLJtUcZgK7sPglscXtxvMOnFOa6wd09VWLM=
|
github.com/containers/ocicrypt v0.0.0-20190930154801-b87a4a69c741 h1:8tQkOcednLJtUcZgK7sPglscXtxvMOnFOa6wd09VWLM=
|
||||||
github.com/containers/ocicrypt v0.0.0-20190930154801-b87a4a69c741/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/C+bKAeWFIrc=
|
github.com/containers/ocicrypt v0.0.0-20190930154801-b87a4a69c741/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/C+bKAeWFIrc=
|
||||||
|
github.com/containers/ocicrypt v1.0.2 h1:Q0/IPs8ohfbXNxEfyJ2pFVmvJu5BhqJUAmc6ES9NKbo=
|
||||||
|
github.com/containers/ocicrypt v1.0.2/go.mod h1:nsOhbP19flrX6rE7ieGFvBlr7modwmNjsqWarIUce4M=
|
||||||
github.com/containers/psgo v1.4.0 h1:D8B4fZCCZhYgc8hDyMPCiShOinmOB1TP1qe46sSC19k=
|
github.com/containers/psgo v1.4.0 h1:D8B4fZCCZhYgc8hDyMPCiShOinmOB1TP1qe46sSC19k=
|
||||||
github.com/containers/psgo v1.4.0/go.mod h1:ENXXLQ5E1At4K0EUsGogXBJi/C28gwqkONWeLPI9fJ8=
|
github.com/containers/psgo v1.4.0/go.mod h1:ENXXLQ5E1At4K0EUsGogXBJi/C28gwqkONWeLPI9fJ8=
|
||||||
github.com/containers/storage v1.15.8/go.mod h1:zhvjIIl/fR6wt/lgqQAC+xanHQ+8gUQ0GBVeXYN81qI=
|
github.com/containers/storage v1.15.8/go.mod h1:zhvjIIl/fR6wt/lgqQAC+xanHQ+8gUQ0GBVeXYN81qI=
|
||||||
@ -190,6 +194,8 @@ github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7a
|
|||||||
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
|
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
|
||||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I=
|
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I=
|
||||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
|
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
|
||||||
|
github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls=
|
||||||
|
github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
|
||||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||||
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||||
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||||
@ -243,6 +249,8 @@ github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpO
|
|||||||
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
||||||
github.com/imdario/mergo v0.3.8 h1:CGgOkSJeqMRmt0D9XLWExdT4m4F1vd3FV3VPt+0VxkQ=
|
github.com/imdario/mergo v0.3.8 h1:CGgOkSJeqMRmt0D9XLWExdT4m4F1vd3FV3VPt+0VxkQ=
|
||||||
github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
||||||
|
github.com/imdario/mergo v0.3.9 h1:UauaLniWCFHWd+Jp9oCEkTBj8VO/9DKg3PV3VCNMDIg=
|
||||||
|
github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
||||||
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
|
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
|
||||||
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
||||||
github.com/insomniacslk/dhcp v0.0.0-20200221232812-81b9770086ea/go.mod h1:CfMdguCK66I5DAUJgGKyNz8aB6vO5dZzkm9Xep6WGvw=
|
github.com/insomniacslk/dhcp v0.0.0-20200221232812-81b9770086ea/go.mod h1:CfMdguCK66I5DAUJgGKyNz8aB6vO5dZzkm9Xep6WGvw=
|
||||||
@ -309,6 +317,8 @@ github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9
|
|||||||
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
||||||
github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c h1:nXxl5PrvVm2L/wCy8dQu6DMTwH4oIuGN8GJDAlqDdVE=
|
github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c h1:nXxl5PrvVm2L/wCy8dQu6DMTwH4oIuGN8GJDAlqDdVE=
|
||||||
github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
|
github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
|
||||||
|
github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
|
||||||
|
github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
|
||||||
github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618 h1:7InQ7/zrOh6SlFjaXFubv0xX0HsuC9qJsdqm7bNQpYM=
|
github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618 h1:7InQ7/zrOh6SlFjaXFubv0xX0HsuC9qJsdqm7bNQpYM=
|
||||||
github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0=
|
github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0=
|
||||||
github.com/mtrmac/gpgme v0.1.2 h1:dNOmvYmsrakgW7LcgiprD0yfRuQQe8/C8F6Z+zogO3s=
|
github.com/mtrmac/gpgme v0.1.2 h1:dNOmvYmsrakgW7LcgiprD0yfRuQQe8/C8F6Z+zogO3s=
|
||||||
@ -471,6 +481,8 @@ github.com/vbatts/tar-split v0.11.1/go.mod h1:LEuURwDEiWjRjwu46yU3KVGuUdVv/dcnpc
|
|||||||
github.com/vbauerster/mpb/v4 v4.11.2/go.mod h1:jIuIRCltGJUnm6DCyPVkwjlLUk4nHTH+m4eD14CdFF0=
|
github.com/vbauerster/mpb/v4 v4.11.2/go.mod h1:jIuIRCltGJUnm6DCyPVkwjlLUk4nHTH+m4eD14CdFF0=
|
||||||
github.com/vbauerster/mpb/v4 v4.12.2 h1:TsBs1nWRYF0m8cUH13pxNhOUqY6yKcOr2PeSYxp2L3I=
|
github.com/vbauerster/mpb/v4 v4.12.2 h1:TsBs1nWRYF0m8cUH13pxNhOUqY6yKcOr2PeSYxp2L3I=
|
||||||
github.com/vbauerster/mpb/v4 v4.12.2/go.mod h1:LVRGvMch8T4HQO3eg2pFPsACH9kO/O6fT/7vhGje3QE=
|
github.com/vbauerster/mpb/v4 v4.12.2/go.mod h1:LVRGvMch8T4HQO3eg2pFPsACH9kO/O6fT/7vhGje3QE=
|
||||||
|
github.com/vbauerster/mpb/v5 v5.0.3 h1:Ldt/azOkbThTk2loi6FrBd/3fhxGFQ24MxFAS88PoNY=
|
||||||
|
github.com/vbauerster/mpb/v5 v5.0.3/go.mod h1:h3YxU5CSr8rZP4Q3xZPVB3jJLhWPou63lHEdr9ytH4Y=
|
||||||
github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk=
|
github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk=
|
||||||
github.com/vishvananda/netlink v1.1.0 h1:1iyaYNBLmP6L0220aDnYQpo1QEV4t4hJ+xEEhhJH8j0=
|
github.com/vishvananda/netlink v1.1.0 h1:1iyaYNBLmP6L0220aDnYQpo1QEV4t4hJ+xEEhhJH8j0=
|
||||||
github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE=
|
github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE=
|
||||||
@ -485,6 +497,8 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:
|
|||||||
github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs=
|
github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs=
|
||||||
github.com/xeipuuv/gojsonschema v0.0.0-20190816131739-be0936907f66 h1:F6RPtD6im1kY4bmLByRlOLOZwsPP7mw7cxR1v2CotL0=
|
github.com/xeipuuv/gojsonschema v0.0.0-20190816131739-be0936907f66 h1:F6RPtD6im1kY4bmLByRlOLOZwsPP7mw7cxR1v2CotL0=
|
||||||
github.com/xeipuuv/gojsonschema v0.0.0-20190816131739-be0936907f66/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
|
github.com/xeipuuv/gojsonschema v0.0.0-20190816131739-be0936907f66/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
|
||||||
|
github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74=
|
||||||
|
github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
|
||||||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
||||||
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
|
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
|
||||||
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
||||||
@ -507,6 +521,9 @@ golang.org/x/crypto v0.0.0-20191112222119-e1110fd1c708/go.mod h1:LzIPMQfyMNhhGPh
|
|||||||
golang.org/x/crypto v0.0.0-20200214034016-1d94cc7ab1c6/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200214034016-1d94cc7ab1c6/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975 h1:/Tl7pH94bvbAAHBdZJT947M/+gp0+CqQXDtMRC0fseo=
|
golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975 h1:/Tl7pH94bvbAAHBdZJT947M/+gp0+CqQXDtMRC0fseo=
|
||||||
golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
|
golang.org/x/crypto v0.0.0-20200311171314-f7b00557c8c4/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
|
golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59 h1:3zb4D3T4G8jdExgVU/95+vQXfpEPiMdCaZgmGVxjNHM=
|
||||||
|
golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||||
@ -536,6 +553,8 @@ golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLL
|
|||||||
golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20200301022130-244492dfa37a h1:GuSPYbZzB5/dcLNCwLQLsg3obCJtX9IJhpXkvY7kzk0=
|
golang.org/x/net v0.0.0-20200301022130-244492dfa37a h1:GuSPYbZzB5/dcLNCwLQLsg3obCJtX9IJhpXkvY7kzk0=
|
||||||
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
|
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k=
|
||||||
|
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a h1:tImsplftrFpALCYumobsd0K86vlAs/eXGFms2txfJfA=
|
golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a h1:tImsplftrFpALCYumobsd0K86vlAs/eXGFms2txfJfA=
|
||||||
golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
@ -545,6 +564,8 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ
|
|||||||
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU=
|
golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU=
|
||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a h1:WXEvlFVvvGxCJLG6REjsT03iWnKLEWinaScsxF2Vm2o=
|
||||||
|
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
@ -572,6 +593,9 @@ golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||||||
golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527 h1:uYVVQ9WP/Ds2ROhcaGPeIdVq0RIXVLwsHlnvJ+cT1So=
|
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527 h1:uYVVQ9WP/Ds2ROhcaGPeIdVq0RIXVLwsHlnvJ+cT1So=
|
||||||
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775 h1:TC0v2RSO1u2kn1ZugjrFXkRZAEaqMN/RW+OTZkBzmLE=
|
||||||
|
golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
@ -580,6 +604,8 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
|||||||
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ=
|
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ=
|
||||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
|
golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs=
|
||||||
|
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
8
vendor/github.com/containers/image/v5/copy/copy.go
generated
vendored
8
vendor/github.com/containers/image/v5/copy/copy.go
generated
vendored
@ -27,8 +27,8 @@ import (
|
|||||||
imgspecv1 "github.com/opencontainers/image-spec/specs-go/v1"
|
imgspecv1 "github.com/opencontainers/image-spec/specs-go/v1"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
"github.com/vbauerster/mpb/v4"
|
"github.com/vbauerster/mpb/v5"
|
||||||
"github.com/vbauerster/mpb/v4/decor"
|
"github.com/vbauerster/mpb/v5/decor"
|
||||||
"golang.org/x/crypto/ssh/terminal"
|
"golang.org/x/crypto/ssh/terminal"
|
||||||
"golang.org/x/sync/semaphore"
|
"golang.org/x/sync/semaphore"
|
||||||
)
|
)
|
||||||
@ -976,7 +976,7 @@ func (c *copier) createProgressBar(pool *mpb.Progress, info types.BlobInfo, kind
|
|||||||
var bar *mpb.Bar
|
var bar *mpb.Bar
|
||||||
if info.Size > 0 {
|
if info.Size > 0 {
|
||||||
bar = pool.AddBar(info.Size,
|
bar = pool.AddBar(info.Size,
|
||||||
mpb.BarClearOnComplete(),
|
mpb.BarFillerClearOnComplete(),
|
||||||
mpb.PrependDecorators(
|
mpb.PrependDecorators(
|
||||||
decor.OnComplete(decor.Name(prefix), onComplete),
|
decor.OnComplete(decor.Name(prefix), onComplete),
|
||||||
),
|
),
|
||||||
@ -987,7 +987,7 @@ func (c *copier) createProgressBar(pool *mpb.Progress, info types.BlobInfo, kind
|
|||||||
} else {
|
} else {
|
||||||
bar = pool.AddSpinner(info.Size,
|
bar = pool.AddSpinner(info.Size,
|
||||||
mpb.SpinnerOnLeft,
|
mpb.SpinnerOnLeft,
|
||||||
mpb.BarClearOnComplete(),
|
mpb.BarFillerClearOnComplete(),
|
||||||
mpb.SpinnerStyle([]string{".", "..", "...", "....", ""}),
|
mpb.SpinnerStyle([]string{".", "..", "...", "....", ""}),
|
||||||
mpb.PrependDecorators(
|
mpb.PrependDecorators(
|
||||||
decor.OnComplete(decor.Name(prefix), onComplete),
|
decor.OnComplete(decor.Name(prefix), onComplete),
|
||||||
|
6
vendor/github.com/containers/image/v5/internal/pkg/platform/platform_matcher.go
generated
vendored
6
vendor/github.com/containers/image/v5/internal/pkg/platform/platform_matcher.go
generated
vendored
@ -62,11 +62,11 @@ func getCPUInfo(pattern string) (info string, err error) {
|
|||||||
return "", fmt.Errorf("getCPUInfo for pattern: %s not found", pattern)
|
return "", fmt.Errorf("getCPUInfo for pattern: %s not found", pattern)
|
||||||
}
|
}
|
||||||
|
|
||||||
func getCPUVariantWindows() string {
|
func getCPUVariantWindows(arch string) string {
|
||||||
// Windows only supports v7 for ARM32 and v8 for ARM64 and so we can use
|
// Windows only supports v7 for ARM32 and v8 for ARM64 and so we can use
|
||||||
// runtime.GOARCH to determine the variants
|
// runtime.GOARCH to determine the variants
|
||||||
var variant string
|
var variant string
|
||||||
switch runtime.GOARCH {
|
switch arch {
|
||||||
case "arm64":
|
case "arm64":
|
||||||
variant = "v8"
|
variant = "v8"
|
||||||
case "arm":
|
case "arm":
|
||||||
@ -107,7 +107,7 @@ func getCPUVariantArm() string {
|
|||||||
|
|
||||||
func getCPUVariant(os string, arch string) string {
|
func getCPUVariant(os string, arch string) string {
|
||||||
if os == "windows" {
|
if os == "windows" {
|
||||||
return getCPUVariantWindows()
|
return getCPUVariantWindows(arch)
|
||||||
}
|
}
|
||||||
if arch == "arm" || arch == "arm64" {
|
if arch == "arm" || arch == "arm64" {
|
||||||
return getCPUVariantArm()
|
return getCPUVariantArm()
|
||||||
|
7
vendor/github.com/containers/image/v5/manifest/docker_schema2.go
generated
vendored
7
vendor/github.com/containers/image/v5/manifest/docker_schema2.go
generated
vendored
@ -118,9 +118,11 @@ type Schema2V1Image struct {
|
|||||||
Author string `json:"author,omitempty"`
|
Author string `json:"author,omitempty"`
|
||||||
// Config is the configuration of the container received from the client
|
// Config is the configuration of the container received from the client
|
||||||
Config *Schema2Config `json:"config,omitempty"`
|
Config *Schema2Config `json:"config,omitempty"`
|
||||||
// Architecture is the hardware that the image is build and runs on
|
// Architecture is the hardware that the image is built and runs on
|
||||||
Architecture string `json:"architecture,omitempty"`
|
Architecture string `json:"architecture,omitempty"`
|
||||||
// OS is the operating system used to build and run the image
|
// Variant is a variant of the CPU that the image is built and runs on
|
||||||
|
Variant string `json:"variant,omitempty"`
|
||||||
|
// OS is the operating system used to built and run the image
|
||||||
OS string `json:"os,omitempty"`
|
OS string `json:"os,omitempty"`
|
||||||
// Size is the total size of the image including all layers it is composed of
|
// Size is the total size of the image including all layers it is composed of
|
||||||
Size int64 `json:",omitempty"`
|
Size int64 `json:",omitempty"`
|
||||||
@ -330,6 +332,7 @@ func (m *Schema2) Inspect(configGetter func(types.BlobInfo) ([]byte, error)) (*t
|
|||||||
Created: &s2.Created,
|
Created: &s2.Created,
|
||||||
DockerVersion: s2.DockerVersion,
|
DockerVersion: s2.DockerVersion,
|
||||||
Architecture: s2.Architecture,
|
Architecture: s2.Architecture,
|
||||||
|
Variant: s2.Variant,
|
||||||
Os: s2.OS,
|
Os: s2.OS,
|
||||||
Layers: layerInfosToStrings(m.LayerInfos()),
|
Layers: layerInfosToStrings(m.LayerInfos()),
|
||||||
}
|
}
|
||||||
|
4
vendor/github.com/containers/image/v5/openshift/openshift-copies.go
generated
vendored
4
vendor/github.com/containers/image/v5/openshift/openshift-copies.go
generated
vendored
@ -16,12 +16,12 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/containers/storage/pkg/homedir"
|
||||||
"github.com/ghodss/yaml"
|
"github.com/ghodss/yaml"
|
||||||
"github.com/imdario/mergo"
|
"github.com/imdario/mergo"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
"golang.org/x/net/http2"
|
"golang.org/x/net/http2"
|
||||||
"k8s.io/client-go/util/homedir"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// restTLSClientConfig is a modified copy of k8s.io/kubernets/pkg/client/restclient.TLSClientConfig.
|
// restTLSClientConfig is a modified copy of k8s.io/kubernets/pkg/client/restclient.TLSClientConfig.
|
||||||
@ -90,7 +90,7 @@ func defaultClientConfig() clientConfig {
|
|||||||
return clientConfig
|
return clientConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
var recommendedHomeFile = path.Join(homedir.HomeDir(), ".kube/config")
|
var recommendedHomeFile = path.Join(homedir.Get(), ".kube/config")
|
||||||
|
|
||||||
// newOpenShiftClientConfigLoadingRules is a modified copy of openshift/origin/pkg/cmd/cli/config.NewOpenShiftClientConfigLoadingRules.
|
// newOpenShiftClientConfigLoadingRules is a modified copy of openshift/origin/pkg/cmd/cli/config.NewOpenShiftClientConfigLoadingRules.
|
||||||
// NewOpenShiftClientConfigLoadingRules returns file priority loading rules for OpenShift.
|
// NewOpenShiftClientConfigLoadingRules returns file priority loading rules for OpenShift.
|
||||||
|
1
vendor/github.com/containers/image/v5/types/types.go
generated
vendored
1
vendor/github.com/containers/image/v5/types/types.go
generated
vendored
@ -444,6 +444,7 @@ type ImageInspectInfo struct {
|
|||||||
DockerVersion string
|
DockerVersion string
|
||||||
Labels map[string]string
|
Labels map[string]string
|
||||||
Architecture string
|
Architecture string
|
||||||
|
Variant string
|
||||||
Os string
|
Os string
|
||||||
Layers []string
|
Layers []string
|
||||||
Env []string
|
Env []string
|
||||||
|
4
vendor/github.com/containers/image/v5/version/version.go
generated
vendored
4
vendor/github.com/containers/image/v5/version/version.go
generated
vendored
@ -6,9 +6,9 @@ const (
|
|||||||
// VersionMajor is for an API incompatible changes
|
// VersionMajor is for an API incompatible changes
|
||||||
VersionMajor = 5
|
VersionMajor = 5
|
||||||
// VersionMinor is for functionality in a backwards-compatible manner
|
// VersionMinor is for functionality in a backwards-compatible manner
|
||||||
VersionMinor = 3
|
VersionMinor = 4
|
||||||
// VersionPatch is for backwards-compatible bug fixes
|
// VersionPatch is for backwards-compatible bug fixes
|
||||||
VersionPatch = 1
|
VersionPatch = 2
|
||||||
|
|
||||||
// VersionDev indicates development branch. Releases will be empty string.
|
// VersionDev indicates development branch. Releases will be empty string.
|
||||||
VersionDev = ""
|
VersionDev = ""
|
||||||
|
3
vendor/github.com/containers/ocicrypt/CODE-OF-CONDUCT.md
generated
vendored
Normal file
3
vendor/github.com/containers/ocicrypt/CODE-OF-CONDUCT.md
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
## The OCIcrypt Library Project Community Code of Conduct
|
||||||
|
|
||||||
|
The OCIcrypt Library project follows the [Containers Community Code of Conduct](https://github.com/containers/common/blob/master/CODE-OF-CONDUCT.md).
|
189
vendor/github.com/containers/ocicrypt/LICENSE
generated
vendored
Normal file
189
vendor/github.com/containers/ocicrypt/LICENSE
generated
vendored
Normal file
@ -0,0 +1,189 @@
|
|||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
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.
|
7
vendor/github.com/containers/ocicrypt/README.md
generated
vendored
7
vendor/github.com/containers/ocicrypt/README.md
generated
vendored
@ -2,6 +2,13 @@
|
|||||||
|
|
||||||
The `ocicrypt` library is the OCI image spec implementation of container image encryption. More details of the spec can be seen in the [OCI repository](https://github.com/opencontainers/image-spec/pull/775). The purpose of this library is to encode spec structures and consts in code, as well as provide a consistent implementation of image encryption across container runtimes and build tools.
|
The `ocicrypt` library is the OCI image spec implementation of container image encryption. More details of the spec can be seen in the [OCI repository](https://github.com/opencontainers/image-spec/pull/775). The purpose of this library is to encode spec structures and consts in code, as well as provide a consistent implementation of image encryption across container runtimes and build tools.
|
||||||
|
|
||||||
|
Consumers of OCIcrypt:
|
||||||
|
|
||||||
|
- [containerd/imgcrypt](https://github.com/containerd/imgcrypt)
|
||||||
|
- [cri-o](https://github.com/cri-o/cri-o)
|
||||||
|
- [skopeo](https://github.com/containers/skopeo)
|
||||||
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
There are various levels of usage for this library. The main consumers of these would be runtime/buil tools, and a more specific use would be in the ability to extend cryptographic function.
|
There are various levels of usage for this library. The main consumers of these would be runtime/buil tools, and a more specific use would be in the ability to extend cryptographic function.
|
||||||
|
7
vendor/github.com/containers/ocicrypt/encryption.go
generated
vendored
7
vendor/github.com/containers/ocicrypt/encryption.go
generated
vendored
@ -196,10 +196,13 @@ func decryptLayerKeyOptsData(dc *config.DecryptConfig, desc ocispec.Descriptor)
|
|||||||
if b64Annotation != "" {
|
if b64Annotation != "" {
|
||||||
keywrapper := GetKeyWrapper(scheme)
|
keywrapper := GetKeyWrapper(scheme)
|
||||||
|
|
||||||
if len(keywrapper.GetPrivateKeys(dc.Parameters)) == 0 {
|
if keywrapper.NoPossibleKeys(dc.Parameters) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
privKeyGiven = true
|
|
||||||
|
if len(keywrapper.GetPrivateKeys(dc.Parameters)) > 0 {
|
||||||
|
privKeyGiven = true
|
||||||
|
}
|
||||||
|
|
||||||
optsData, err := preUnwrapKey(keywrapper, dc, b64Annotation)
|
optsData, err := preUnwrapKey(keywrapper, dc, b64Annotation)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
1
vendor/github.com/containers/ocicrypt/go.mod
generated
vendored
1
vendor/github.com/containers/ocicrypt/go.mod
generated
vendored
@ -10,7 +10,6 @@ require (
|
|||||||
github.com/pkg/errors v0.8.1
|
github.com/pkg/errors v0.8.1
|
||||||
github.com/sirupsen/logrus v1.4.2 // indirect
|
github.com/sirupsen/logrus v1.4.2 // indirect
|
||||||
github.com/stretchr/testify v1.3.0 // indirect
|
github.com/stretchr/testify v1.3.0 // indirect
|
||||||
github.com/urfave/cli v1.22.1
|
|
||||||
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4
|
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4
|
||||||
google.golang.org/grpc v1.24.0 // indirect
|
google.golang.org/grpc v1.24.0 // indirect
|
||||||
gopkg.in/square/go-jose.v2 v2.3.1
|
gopkg.in/square/go-jose.v2 v2.3.1
|
||||||
|
10
vendor/github.com/containers/ocicrypt/go.sum
generated
vendored
10
vendor/github.com/containers/ocicrypt/go.sum
generated
vendored
@ -3,8 +3,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03
|
|||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
github.com/containerd/containerd v1.2.10 h1:liQDhXqIn7y6cJ/7qBgOaZsiTZJc56/wkkhDBiDBRDw=
|
github.com/containerd/containerd v1.2.10 h1:liQDhXqIn7y6cJ/7qBgOaZsiTZJc56/wkkhDBiDBRDw=
|
||||||
github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
|
github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY=
|
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
|
||||||
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
|
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
@ -28,10 +26,6 @@ github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
|
|||||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=
|
|
||||||
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
|
||||||
github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
|
|
||||||
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
|
|
||||||
github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4=
|
github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4=
|
||||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
@ -39,8 +33,6 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
|
|||||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||||
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
|
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
github.com/urfave/cli v1.22.1 h1:+mkCCcOFKPnCmVYVcURKps1Xe+3zP90gSYGNfRkjoIY=
|
|
||||||
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 h1:HuIa8hRrWRSrqYzx1qI49NNxhdi2PrY7gxVSq1JjLDc=
|
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 h1:HuIa8hRrWRSrqYzx1qI49NNxhdi2PrY7gxVSq1JjLDc=
|
||||||
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
@ -64,10 +56,8 @@ google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8 h1:Nw54tB0rB7hY/N0
|
|||||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
||||||
google.golang.org/grpc v1.24.0 h1:vb/1TCsVn3DcJlQ0Gs1yB1pKI6Do2/QNwxdKqmc/b0s=
|
google.golang.org/grpc v1.24.0 h1:vb/1TCsVn3DcJlQ0Gs1yB1pKI6Do2/QNwxdKqmc/b0s=
|
||||||
google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA=
|
google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
||||||
gopkg.in/square/go-jose.v2 v2.3.1 h1:SK5KegNXmKmqE342YYN2qPHEnUYeoMiXXl1poUlI+o4=
|
gopkg.in/square/go-jose.v2 v2.3.1 h1:SK5KegNXmKmqE342YYN2qPHEnUYeoMiXXl1poUlI+o4=
|
||||||
gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
|
gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
|
||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
||||||
gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
|
gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
|
||||||
gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
|
gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
|
||||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
|
4
vendor/github.com/containers/ocicrypt/keywrap/jwe/keywrapper_jwe.go
generated
vendored
4
vendor/github.com/containers/ocicrypt/keywrap/jwe/keywrapper_jwe.go
generated
vendored
@ -91,6 +91,10 @@ func (kw *jweKeyWrapper) UnwrapKey(dc *config.DecryptConfig, jweString []byte) (
|
|||||||
return nil, errors.New("JWE: No suitable private key found for decryption")
|
return nil, errors.New("JWE: No suitable private key found for decryption")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (kw *jweKeyWrapper) NoPossibleKeys(dcparameters map[string][][]byte) bool {
|
||||||
|
return len(kw.GetPrivateKeys(dcparameters)) == 0
|
||||||
|
}
|
||||||
|
|
||||||
func (kw *jweKeyWrapper) GetPrivateKeys(dcparameters map[string][][]byte) [][]byte {
|
func (kw *jweKeyWrapper) GetPrivateKeys(dcparameters map[string][][]byte) [][]byte {
|
||||||
return dcparameters["privkeys"]
|
return dcparameters["privkeys"]
|
||||||
}
|
}
|
||||||
|
8
vendor/github.com/containers/ocicrypt/keywrap/keywrap.go
generated
vendored
8
vendor/github.com/containers/ocicrypt/keywrap/keywrap.go
generated
vendored
@ -26,15 +26,23 @@ type KeyWrapper interface {
|
|||||||
WrapKeys(ec *config.EncryptConfig, optsData []byte) ([]byte, error)
|
WrapKeys(ec *config.EncryptConfig, optsData []byte) ([]byte, error)
|
||||||
UnwrapKey(dc *config.DecryptConfig, annotation []byte) ([]byte, error)
|
UnwrapKey(dc *config.DecryptConfig, annotation []byte) ([]byte, error)
|
||||||
GetAnnotationID() string
|
GetAnnotationID() string
|
||||||
|
|
||||||
|
// NoPossibleKeys returns true if there is no possibility of performing
|
||||||
|
// decryption for parameters provided.
|
||||||
|
NoPossibleKeys(dcparameters map[string][][]byte) bool
|
||||||
|
|
||||||
// GetPrivateKeys (optional) gets the array of private keys. It is an optional implementation
|
// GetPrivateKeys (optional) gets the array of private keys. It is an optional implementation
|
||||||
// as in some key services, a private key may not be exportable (i.e. HSM)
|
// as in some key services, a private key may not be exportable (i.e. HSM)
|
||||||
|
// If not implemented, return nil
|
||||||
GetPrivateKeys(dcparameters map[string][][]byte) [][]byte
|
GetPrivateKeys(dcparameters map[string][][]byte) [][]byte
|
||||||
|
|
||||||
// GetKeyIdsFromPacket (optional) gets a list of key IDs. This is optional as some encryption
|
// GetKeyIdsFromPacket (optional) gets a list of key IDs. This is optional as some encryption
|
||||||
// schemes may not have a notion of key IDs
|
// schemes may not have a notion of key IDs
|
||||||
|
// If not implemented, return the nil slice
|
||||||
GetKeyIdsFromPacket(packet string) ([]uint64, error)
|
GetKeyIdsFromPacket(packet string) ([]uint64, error)
|
||||||
|
|
||||||
// GetRecipients (optional) gets a list of recipients. It is optional due to the validity of
|
// GetRecipients (optional) gets a list of recipients. It is optional due to the validity of
|
||||||
// recipients in a particular encryptiong scheme
|
// recipients in a particular encryptiong scheme
|
||||||
|
// If not implemented, return the nil slice
|
||||||
GetRecipients(packet string) ([]string, error)
|
GetRecipients(packet string) ([]string, error)
|
||||||
}
|
}
|
||||||
|
4
vendor/github.com/containers/ocicrypt/keywrap/pgp/keywrapper_gpg.go
generated
vendored
4
vendor/github.com/containers/ocicrypt/keywrap/pgp/keywrapper_gpg.go
generated
vendored
@ -191,6 +191,10 @@ func (kw *gpgKeyWrapper) GetRecipients(b64pgpPackets string) ([]string, error) {
|
|||||||
return array, nil
|
return array, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (kw *gpgKeyWrapper) NoPossibleKeys(dcparameters map[string][][]byte) bool {
|
||||||
|
return len(kw.GetPrivateKeys(dcparameters)) == 0
|
||||||
|
}
|
||||||
|
|
||||||
func (kw *gpgKeyWrapper) GetPrivateKeys(dcparameters map[string][][]byte) [][]byte {
|
func (kw *gpgKeyWrapper) GetPrivateKeys(dcparameters map[string][][]byte) [][]byte {
|
||||||
return dcparameters["gpg-privatekeys"]
|
return dcparameters["gpg-privatekeys"]
|
||||||
}
|
}
|
||||||
|
4
vendor/github.com/containers/ocicrypt/keywrap/pkcs7/keywrapper_pkcs7.go
generated
vendored
4
vendor/github.com/containers/ocicrypt/keywrap/pkcs7/keywrapper_pkcs7.go
generated
vendored
@ -70,6 +70,10 @@ func collectX509s(x509s [][]byte) ([]*x509.Certificate, error) {
|
|||||||
return x509Certs, nil
|
return x509Certs, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (kw *pkcs7KeyWrapper) NoPossibleKeys(dcparameters map[string][][]byte) bool {
|
||||||
|
return len(kw.GetPrivateKeys(dcparameters)) == 0
|
||||||
|
}
|
||||||
|
|
||||||
func (kw *pkcs7KeyWrapper) GetPrivateKeys(dcparameters map[string][][]byte) [][]byte {
|
func (kw *pkcs7KeyWrapper) GetPrivateKeys(dcparameters map[string][][]byte) [][]byte {
|
||||||
return dcparameters["privkeys"]
|
return dcparameters["privkeys"]
|
||||||
}
|
}
|
||||||
|
2
vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go
generated
vendored
2
vendor/github.com/gogo/protobuf/gogoproto/gogo.pb.go
generated
vendored
@ -19,7 +19,7 @@ var _ = math.Inf
|
|||||||
// is compatible with the proto package it is being compiled against.
|
// is compatible with the proto package it is being compiled against.
|
||||||
// A compilation error at this line likely means your copy of the
|
// A compilation error at this line likely means your copy of the
|
||||||
// proto package needs to be updated.
|
// proto package needs to be updated.
|
||||||
const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
|
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
|
||||||
|
|
||||||
var E_GoprotoEnumPrefix = &proto.ExtensionDesc{
|
var E_GoprotoEnumPrefix = &proto.ExtensionDesc{
|
||||||
ExtendedType: (*descriptor.EnumOptions)(nil),
|
ExtendedType: (*descriptor.EnumOptions)(nil),
|
||||||
|
2
vendor/github.com/gogo/protobuf/proto/encode.go
generated
vendored
2
vendor/github.com/gogo/protobuf/proto/encode.go
generated
vendored
@ -189,6 +189,8 @@ type Marshaler interface {
|
|||||||
// prefixed by a varint-encoded length.
|
// prefixed by a varint-encoded length.
|
||||||
func (p *Buffer) EncodeMessage(pb Message) error {
|
func (p *Buffer) EncodeMessage(pb Message) error {
|
||||||
siz := Size(pb)
|
siz := Size(pb)
|
||||||
|
sizVar := SizeVarint(uint64(siz))
|
||||||
|
p.grow(siz + sizVar)
|
||||||
p.EncodeVarint(uint64(siz))
|
p.EncodeVarint(uint64(siz))
|
||||||
return p.Marshal(pb)
|
return p.Marshal(pb)
|
||||||
}
|
}
|
||||||
|
18
vendor/github.com/gogo/protobuf/proto/lib.go
generated
vendored
18
vendor/github.com/gogo/protobuf/proto/lib.go
generated
vendored
@ -948,13 +948,19 @@ func isProto3Zero(v reflect.Value) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// ProtoPackageIsVersion2 is referenced from generated protocol buffer files
|
const (
|
||||||
// to assert that that code is compatible with this version of the proto package.
|
// ProtoPackageIsVersion3 is referenced from generated protocol buffer files
|
||||||
const GoGoProtoPackageIsVersion2 = true
|
// to assert that that code is compatible with this version of the proto package.
|
||||||
|
GoGoProtoPackageIsVersion3 = true
|
||||||
|
|
||||||
// ProtoPackageIsVersion1 is referenced from generated protocol buffer files
|
// ProtoPackageIsVersion2 is referenced from generated protocol buffer files
|
||||||
// to assert that that code is compatible with this version of the proto package.
|
// to assert that that code is compatible with this version of the proto package.
|
||||||
const GoGoProtoPackageIsVersion1 = true
|
GoGoProtoPackageIsVersion2 = true
|
||||||
|
|
||||||
|
// ProtoPackageIsVersion1 is referenced from generated protocol buffer files
|
||||||
|
// to assert that that code is compatible with this version of the proto package.
|
||||||
|
GoGoProtoPackageIsVersion1 = true
|
||||||
|
)
|
||||||
|
|
||||||
// InternalMessageInfo is a type used internally by generated .pb.go files.
|
// InternalMessageInfo is a type used internally by generated .pb.go files.
|
||||||
// This type is not intended to be used by non-generated code.
|
// This type is not intended to be used by non-generated code.
|
||||||
|
71
vendor/github.com/gogo/protobuf/proto/properties.go
generated
vendored
71
vendor/github.com/gogo/protobuf/proto/properties.go
generated
vendored
@ -43,7 +43,6 @@ package proto
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
|
||||||
"reflect"
|
"reflect"
|
||||||
"sort"
|
"sort"
|
||||||
"strconv"
|
"strconv"
|
||||||
@ -205,7 +204,7 @@ func (p *Properties) Parse(s string) {
|
|||||||
// "bytes,49,opt,name=foo,def=hello!"
|
// "bytes,49,opt,name=foo,def=hello!"
|
||||||
fields := strings.Split(s, ",") // breaks def=, but handled below.
|
fields := strings.Split(s, ",") // breaks def=, but handled below.
|
||||||
if len(fields) < 2 {
|
if len(fields) < 2 {
|
||||||
fmt.Fprintf(os.Stderr, "proto: tag has too few fields: %q\n", s)
|
log.Printf("proto: tag has too few fields: %q", s)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -225,7 +224,7 @@ func (p *Properties) Parse(s string) {
|
|||||||
p.WireType = WireBytes
|
p.WireType = WireBytes
|
||||||
// no numeric converter for non-numeric types
|
// no numeric converter for non-numeric types
|
||||||
default:
|
default:
|
||||||
fmt.Fprintf(os.Stderr, "proto: tag has unknown wire type: %q\n", s)
|
log.Printf("proto: tag has unknown wire type: %q", s)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -400,6 +399,15 @@ func GetProperties(t reflect.Type) *StructProperties {
|
|||||||
return sprop
|
return sprop
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type (
|
||||||
|
oneofFuncsIface interface {
|
||||||
|
XXX_OneofFuncs() (func(Message, *Buffer) error, func(Message, int, int, *Buffer) (bool, error), func(Message) int, []interface{})
|
||||||
|
}
|
||||||
|
oneofWrappersIface interface {
|
||||||
|
XXX_OneofWrappers() []interface{}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
// getPropertiesLocked requires that propertiesMu is held.
|
// getPropertiesLocked requires that propertiesMu is held.
|
||||||
func getPropertiesLocked(t reflect.Type) *StructProperties {
|
func getPropertiesLocked(t reflect.Type) *StructProperties {
|
||||||
if prop, ok := propertiesMap[t]; ok {
|
if prop, ok := propertiesMap[t]; ok {
|
||||||
@ -441,37 +449,40 @@ func getPropertiesLocked(t reflect.Type) *StructProperties {
|
|||||||
// Re-order prop.order.
|
// Re-order prop.order.
|
||||||
sort.Sort(prop)
|
sort.Sort(prop)
|
||||||
|
|
||||||
type oneofMessage interface {
|
if isOneofMessage {
|
||||||
XXX_OneofFuncs() (func(Message, *Buffer) error, func(Message, int, int, *Buffer) (bool, error), func(Message) int, []interface{})
|
|
||||||
}
|
|
||||||
if om, ok := reflect.Zero(reflect.PtrTo(t)).Interface().(oneofMessage); isOneofMessage && ok {
|
|
||||||
var oots []interface{}
|
var oots []interface{}
|
||||||
_, _, _, oots = om.XXX_OneofFuncs()
|
switch m := reflect.Zero(reflect.PtrTo(t)).Interface().(type) {
|
||||||
|
case oneofFuncsIface:
|
||||||
// Interpret oneof metadata.
|
_, _, _, oots = m.XXX_OneofFuncs()
|
||||||
prop.OneofTypes = make(map[string]*OneofProperties)
|
case oneofWrappersIface:
|
||||||
for _, oot := range oots {
|
oots = m.XXX_OneofWrappers()
|
||||||
oop := &OneofProperties{
|
}
|
||||||
Type: reflect.ValueOf(oot).Type(), // *T
|
if len(oots) > 0 {
|
||||||
Prop: new(Properties),
|
// Interpret oneof metadata.
|
||||||
}
|
prop.OneofTypes = make(map[string]*OneofProperties)
|
||||||
sft := oop.Type.Elem().Field(0)
|
for _, oot := range oots {
|
||||||
oop.Prop.Name = sft.Name
|
oop := &OneofProperties{
|
||||||
oop.Prop.Parse(sft.Tag.Get("protobuf"))
|
Type: reflect.ValueOf(oot).Type(), // *T
|
||||||
// There will be exactly one interface field that
|
Prop: new(Properties),
|
||||||
// this new value is assignable to.
|
|
||||||
for i := 0; i < t.NumField(); i++ {
|
|
||||||
f := t.Field(i)
|
|
||||||
if f.Type.Kind() != reflect.Interface {
|
|
||||||
continue
|
|
||||||
}
|
}
|
||||||
if !oop.Type.AssignableTo(f.Type) {
|
sft := oop.Type.Elem().Field(0)
|
||||||
continue
|
oop.Prop.Name = sft.Name
|
||||||
|
oop.Prop.Parse(sft.Tag.Get("protobuf"))
|
||||||
|
// There will be exactly one interface field that
|
||||||
|
// this new value is assignable to.
|
||||||
|
for i := 0; i < t.NumField(); i++ {
|
||||||
|
f := t.Field(i)
|
||||||
|
if f.Type.Kind() != reflect.Interface {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if !oop.Type.AssignableTo(f.Type) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
oop.Field = i
|
||||||
|
break
|
||||||
}
|
}
|
||||||
oop.Field = i
|
prop.OneofTypes[oop.Prop.OrigName] = oop
|
||||||
break
|
|
||||||
}
|
}
|
||||||
prop.OneofTypes[oop.Prop.OrigName] = oop
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
17
vendor/github.com/gogo/protobuf/proto/table_marshal.go
generated
vendored
17
vendor/github.com/gogo/protobuf/proto/table_marshal.go
generated
vendored
@ -389,8 +389,13 @@ func (u *marshalInfo) computeMarshalInfo() {
|
|||||||
// get oneof implementers
|
// get oneof implementers
|
||||||
var oneofImplementers []interface{}
|
var oneofImplementers []interface{}
|
||||||
// gogo: isOneofMessage is needed for embedded oneof messages, without a marshaler and unmarshaler
|
// gogo: isOneofMessage is needed for embedded oneof messages, without a marshaler and unmarshaler
|
||||||
if m, ok := reflect.Zero(reflect.PtrTo(t)).Interface().(oneofMessage); ok && isOneofMessage {
|
if isOneofMessage {
|
||||||
_, _, _, oneofImplementers = m.XXX_OneofFuncs()
|
switch m := reflect.Zero(reflect.PtrTo(t)).Interface().(type) {
|
||||||
|
case oneofFuncsIface:
|
||||||
|
_, _, _, oneofImplementers = m.XXX_OneofFuncs()
|
||||||
|
case oneofWrappersIface:
|
||||||
|
oneofImplementers = m.XXX_OneofWrappers()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// normal fields
|
// normal fields
|
||||||
@ -519,10 +524,6 @@ func (fi *marshalFieldInfo) computeOneofFieldInfo(f *reflect.StructField, oneofI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type oneofMessage interface {
|
|
||||||
XXX_OneofFuncs() (func(Message, *Buffer) error, func(Message, int, int, *Buffer) (bool, error), func(Message) int, []interface{})
|
|
||||||
}
|
|
||||||
|
|
||||||
// wiretype returns the wire encoding of the type.
|
// wiretype returns the wire encoding of the type.
|
||||||
func wiretype(encoding string) uint64 {
|
func wiretype(encoding string) uint64 {
|
||||||
switch encoding {
|
switch encoding {
|
||||||
@ -2968,7 +2969,9 @@ func (p *Buffer) Marshal(pb Message) error {
|
|||||||
if m, ok := pb.(newMarshaler); ok {
|
if m, ok := pb.(newMarshaler); ok {
|
||||||
siz := m.XXX_Size()
|
siz := m.XXX_Size()
|
||||||
p.grow(siz) // make sure buf has enough capacity
|
p.grow(siz) // make sure buf has enough capacity
|
||||||
p.buf, err = m.XXX_Marshal(p.buf, p.deterministic)
|
pp := p.buf[len(p.buf) : len(p.buf) : len(p.buf)+siz]
|
||||||
|
pp, err = m.XXX_Marshal(pp, p.deterministic)
|
||||||
|
p.buf = append(p.buf, pp...)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if m, ok := pb.(Marshaler); ok {
|
if m, ok := pb.(Marshaler); ok {
|
||||||
|
19
vendor/github.com/gogo/protobuf/proto/table_merge.go
generated
vendored
19
vendor/github.com/gogo/protobuf/proto/table_merge.go
generated
vendored
@ -530,6 +530,25 @@ func (mi *mergeInfo) computeMergeInfo() {
|
|||||||
}
|
}
|
||||||
case reflect.Struct:
|
case reflect.Struct:
|
||||||
switch {
|
switch {
|
||||||
|
case isSlice && !isPointer: // E.g. []pb.T
|
||||||
|
mergeInfo := getMergeInfo(tf)
|
||||||
|
zero := reflect.Zero(tf)
|
||||||
|
mfi.merge = func(dst, src pointer) {
|
||||||
|
// TODO: Make this faster?
|
||||||
|
dstsp := dst.asPointerTo(f.Type)
|
||||||
|
dsts := dstsp.Elem()
|
||||||
|
srcs := src.asPointerTo(f.Type).Elem()
|
||||||
|
for i := 0; i < srcs.Len(); i++ {
|
||||||
|
dsts = reflect.Append(dsts, zero)
|
||||||
|
srcElement := srcs.Index(i).Addr()
|
||||||
|
dstElement := dsts.Index(dsts.Len() - 1).Addr()
|
||||||
|
mergeInfo.merge(valToPointer(dstElement), valToPointer(srcElement))
|
||||||
|
}
|
||||||
|
if dsts.IsNil() {
|
||||||
|
dsts = reflect.MakeSlice(f.Type, 0, 0)
|
||||||
|
}
|
||||||
|
dstsp.Elem().Set(dsts)
|
||||||
|
}
|
||||||
case !isPointer:
|
case !isPointer:
|
||||||
mergeInfo := getMergeInfo(tf)
|
mergeInfo := getMergeInfo(tf)
|
||||||
mfi.merge = func(dst, src pointer) {
|
mfi.merge = func(dst, src pointer) {
|
||||||
|
22
vendor/github.com/gogo/protobuf/proto/table_unmarshal.go
generated
vendored
22
vendor/github.com/gogo/protobuf/proto/table_unmarshal.go
generated
vendored
@ -371,15 +371,18 @@ func (u *unmarshalInfo) computeUnmarshalInfo() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Find any types associated with oneof fields.
|
// Find any types associated with oneof fields.
|
||||||
// TODO: XXX_OneofFuncs returns more info than we need. Get rid of some of it?
|
|
||||||
fn := reflect.Zero(reflect.PtrTo(t)).MethodByName("XXX_OneofFuncs")
|
|
||||||
// gogo: len(oneofFields) > 0 is needed for embedded oneof messages, without a marshaler and unmarshaler
|
// gogo: len(oneofFields) > 0 is needed for embedded oneof messages, without a marshaler and unmarshaler
|
||||||
if fn.IsValid() && len(oneofFields) > 0 {
|
if len(oneofFields) > 0 {
|
||||||
res := fn.Call(nil)[3] // last return value from XXX_OneofFuncs: []interface{}
|
var oneofImplementers []interface{}
|
||||||
for i := res.Len() - 1; i >= 0; i-- {
|
switch m := reflect.Zero(reflect.PtrTo(t)).Interface().(type) {
|
||||||
v := res.Index(i) // interface{}
|
case oneofFuncsIface:
|
||||||
tptr := reflect.ValueOf(v.Interface()).Type() // *Msg_X
|
_, _, _, oneofImplementers = m.XXX_OneofFuncs()
|
||||||
typ := tptr.Elem() // Msg_X
|
case oneofWrappersIface:
|
||||||
|
oneofImplementers = m.XXX_OneofWrappers()
|
||||||
|
}
|
||||||
|
for _, v := range oneofImplementers {
|
||||||
|
tptr := reflect.TypeOf(v) // *Msg_X
|
||||||
|
typ := tptr.Elem() // Msg_X
|
||||||
|
|
||||||
f := typ.Field(0) // oneof implementers have one field
|
f := typ.Field(0) // oneof implementers have one field
|
||||||
baseUnmarshal := fieldUnmarshaler(&f)
|
baseUnmarshal := fieldUnmarshaler(&f)
|
||||||
@ -407,11 +410,12 @@ func (u *unmarshalInfo) computeUnmarshalInfo() {
|
|||||||
u.setTag(fieldNum, of.field, unmarshal, 0, name)
|
u.setTag(fieldNum, of.field, unmarshal, 0, name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get extension ranges, if any.
|
// Get extension ranges, if any.
|
||||||
fn = reflect.Zero(reflect.PtrTo(t)).MethodByName("ExtensionRangeArray")
|
fn := reflect.Zero(reflect.PtrTo(t)).MethodByName("ExtensionRangeArray")
|
||||||
if fn.IsValid() {
|
if fn.IsValid() {
|
||||||
if !u.extensions.IsValid() && !u.oldExtensions.IsValid() && !u.bytesExtensions.IsValid() {
|
if !u.extensions.IsValid() && !u.oldExtensions.IsValid() && !u.bytesExtensions.IsValid() {
|
||||||
panic("a message with extensions, but no extensions field in " + t.Name())
|
panic("a message with extensions, but no extensions field in " + t.Name())
|
||||||
|
6
vendor/github.com/gogo/protobuf/proto/text.go
generated
vendored
6
vendor/github.com/gogo/protobuf/proto/text.go
generated
vendored
@ -476,6 +476,8 @@ func (tm *TextMarshaler) writeStruct(w *textWriter, sv reflect.Value) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var textMarshalerType = reflect.TypeOf((*encoding.TextMarshaler)(nil)).Elem()
|
||||||
|
|
||||||
// writeAny writes an arbitrary field.
|
// writeAny writes an arbitrary field.
|
||||||
func (tm *TextMarshaler) writeAny(w *textWriter, v reflect.Value, props *Properties) error {
|
func (tm *TextMarshaler) writeAny(w *textWriter, v reflect.Value, props *Properties) error {
|
||||||
v = reflect.Indirect(v)
|
v = reflect.Indirect(v)
|
||||||
@ -589,8 +591,8 @@ func (tm *TextMarshaler) writeAny(w *textWriter, v reflect.Value, props *Propert
|
|||||||
// mutating this value.
|
// mutating this value.
|
||||||
v = v.Addr()
|
v = v.Addr()
|
||||||
}
|
}
|
||||||
if etm, ok := v.Interface().(encoding.TextMarshaler); ok {
|
if v.Type().Implements(textMarshalerType) {
|
||||||
text, err := etm.MarshalText()
|
text, err := v.Interface().(encoding.TextMarshaler).MarshalText()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
10
vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go
generated
vendored
10
vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/descriptor.pb.go
generated
vendored
@ -18,7 +18,7 @@ var _ = math.Inf
|
|||||||
// is compatible with the proto package it is being compiled against.
|
// is compatible with the proto package it is being compiled against.
|
||||||
// A compilation error at this line likely means your copy of the
|
// A compilation error at this line likely means your copy of the
|
||||||
// proto package needs to be updated.
|
// proto package needs to be updated.
|
||||||
const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
|
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
|
||||||
|
|
||||||
type FieldDescriptorProto_Type int32
|
type FieldDescriptorProto_Type int32
|
||||||
|
|
||||||
@ -1364,8 +1364,8 @@ type FileOptions struct {
|
|||||||
// determining the namespace.
|
// determining the namespace.
|
||||||
PhpNamespace *string `protobuf:"bytes,41,opt,name=php_namespace,json=phpNamespace" json:"php_namespace,omitempty"`
|
PhpNamespace *string `protobuf:"bytes,41,opt,name=php_namespace,json=phpNamespace" json:"php_namespace,omitempty"`
|
||||||
// Use this option to change the namespace of php generated metadata classes.
|
// Use this option to change the namespace of php generated metadata classes.
|
||||||
// Default is empty. When this option is empty, the proto file name will be used
|
// Default is empty. When this option is empty, the proto file name will be
|
||||||
// for determining the namespace.
|
// used for determining the namespace.
|
||||||
PhpMetadataNamespace *string `protobuf:"bytes,44,opt,name=php_metadata_namespace,json=phpMetadataNamespace" json:"php_metadata_namespace,omitempty"`
|
PhpMetadataNamespace *string `protobuf:"bytes,44,opt,name=php_metadata_namespace,json=phpMetadataNamespace" json:"php_metadata_namespace,omitempty"`
|
||||||
// Use this option to change the package of ruby generated classes. Default
|
// Use this option to change the package of ruby generated classes. Default
|
||||||
// is empty. When this option is not set, the package name will be used for
|
// is empty. When this option is not set, the package name will be used for
|
||||||
@ -1615,7 +1615,7 @@ type MessageOptions struct {
|
|||||||
//
|
//
|
||||||
// Implementations may choose not to generate the map_entry=true message, but
|
// Implementations may choose not to generate the map_entry=true message, but
|
||||||
// use a native map in the target language to hold the keys and values.
|
// use a native map in the target language to hold the keys and values.
|
||||||
// The reflection APIs in such implementions still need to work as
|
// The reflection APIs in such implementations still need to work as
|
||||||
// if the field is a repeated message field.
|
// if the field is a repeated message field.
|
||||||
//
|
//
|
||||||
// NOTE: Do not set the option in .proto files. Always use the maps syntax
|
// NOTE: Do not set the option in .proto files. Always use the maps syntax
|
||||||
@ -2363,7 +2363,7 @@ type SourceCodeInfo struct {
|
|||||||
// beginning of the "extend" block and is shared by all extensions within
|
// beginning of the "extend" block and is shared by all extensions within
|
||||||
// the block.
|
// the block.
|
||||||
// - Just because a location's span is a subset of some other location's span
|
// - Just because a location's span is a subset of some other location's span
|
||||||
// does not mean that it is a descendent. For example, a "group" defines
|
// does not mean that it is a descendant. For example, a "group" defines
|
||||||
// both a type and a field in a single declaration. Thus, the locations
|
// both a type and a field in a single declaration. Thus, the locations
|
||||||
// corresponding to the type and field and their components will overlap.
|
// corresponding to the type and field and their components will overlap.
|
||||||
// - Code which tries to interpret locations should probably be designed to
|
// - Code which tries to interpret locations should probably be designed to
|
||||||
|
12
vendor/github.com/imdario/mergo/.deepsource.toml
generated
vendored
Normal file
12
vendor/github.com/imdario/mergo/.deepsource.toml
generated
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
version = 1
|
||||||
|
|
||||||
|
test_patterns = [
|
||||||
|
"*_test.go"
|
||||||
|
]
|
||||||
|
|
||||||
|
[[analyzers]]
|
||||||
|
name = "go"
|
||||||
|
enabled = true
|
||||||
|
|
||||||
|
[analyzers.meta]
|
||||||
|
import_path = "github.com/imdario/mergo"
|
7
vendor/github.com/imdario/mergo/map.go
generated
vendored
7
vendor/github.com/imdario/mergo/map.go
generated
vendored
@ -99,11 +99,11 @@ func deepMap(dst, src reflect.Value, visited map[uintptr]*visit, depth int, conf
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if srcKind == dstKind {
|
if srcKind == dstKind {
|
||||||
if err = deepMerge(dstElement, srcElement, visited, depth+1, config); err != nil {
|
if _, err = deepMerge(dstElement, srcElement, visited, depth+1, config); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else if dstKind == reflect.Interface && dstElement.Kind() == reflect.Interface {
|
} else if dstKind == reflect.Interface && dstElement.Kind() == reflect.Interface {
|
||||||
if err = deepMerge(dstElement, srcElement, visited, depth+1, config); err != nil {
|
if _, err = deepMerge(dstElement, srcElement, visited, depth+1, config); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else if srcKind == reflect.Map {
|
} else if srcKind == reflect.Map {
|
||||||
@ -157,7 +157,8 @@ func _map(dst, src interface{}, opts ...func(*Config)) error {
|
|||||||
// To be friction-less, we redirect equal-type arguments
|
// To be friction-less, we redirect equal-type arguments
|
||||||
// to deepMerge. Only because arguments can be anything.
|
// to deepMerge. Only because arguments can be anything.
|
||||||
if vSrc.Kind() == vDst.Kind() {
|
if vSrc.Kind() == vDst.Kind() {
|
||||||
return deepMerge(vDst, vSrc, make(map[uintptr]*visit), 0, config)
|
_, err := deepMerge(vDst, vSrc, make(map[uintptr]*visit), 0, config)
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
switch vSrc.Kind() {
|
switch vSrc.Kind() {
|
||||||
case reflect.Struct:
|
case reflect.Struct:
|
||||||
|
237
vendor/github.com/imdario/mergo/merge.go
generated
vendored
237
vendor/github.com/imdario/mergo/merge.go
generated
vendored
@ -11,20 +11,32 @@ package mergo
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
"unsafe"
|
||||||
)
|
)
|
||||||
|
|
||||||
func hasExportedField(dst reflect.Value) (exported bool) {
|
func hasExportedField(dst reflect.Value) (exported bool) {
|
||||||
for i, n := 0, dst.NumField(); i < n; i++ {
|
for i, n := 0, dst.NumField(); i < n; i++ {
|
||||||
field := dst.Type().Field(i)
|
field := dst.Type().Field(i)
|
||||||
if field.Anonymous && dst.Field(i).Kind() == reflect.Struct {
|
if isExportedComponent(&field) {
|
||||||
exported = exported || hasExportedField(dst.Field(i))
|
return true
|
||||||
} else {
|
|
||||||
exported = exported || len(field.PkgPath) == 0
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func isExportedComponent(field *reflect.StructField) bool {
|
||||||
|
name := field.Name
|
||||||
|
pkgPath := field.PkgPath
|
||||||
|
if len(pkgPath) > 0 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
c := name[0]
|
||||||
|
if 'a' <= c && c <= 'z' || c == '_' {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
type Config struct {
|
type Config struct {
|
||||||
Overwrite bool
|
Overwrite bool
|
||||||
AppendSlice bool
|
AppendSlice bool
|
||||||
@ -41,16 +53,17 @@ type Transformers interface {
|
|||||||
// Traverses recursively both values, assigning src's fields values to dst.
|
// Traverses recursively both values, assigning src's fields values to dst.
|
||||||
// The map argument tracks comparisons that have already been seen, which allows
|
// The map argument tracks comparisons that have already been seen, which allows
|
||||||
// short circuiting on recursive types.
|
// short circuiting on recursive types.
|
||||||
func deepMerge(dst, src reflect.Value, visited map[uintptr]*visit, depth int, config *Config) (err error) {
|
func deepMerge(dstIn, src reflect.Value, visited map[uintptr]*visit, depth int, config *Config) (dst reflect.Value, err error) {
|
||||||
|
dst = dstIn
|
||||||
overwrite := config.Overwrite
|
overwrite := config.Overwrite
|
||||||
typeCheck := config.TypeCheck
|
typeCheck := config.TypeCheck
|
||||||
overwriteWithEmptySrc := config.overwriteWithEmptyValue
|
overwriteWithEmptySrc := config.overwriteWithEmptyValue
|
||||||
overwriteSliceWithEmptySrc := config.overwriteSliceWithEmptyValue
|
overwriteSliceWithEmptySrc := config.overwriteSliceWithEmptyValue
|
||||||
config.overwriteWithEmptyValue = false
|
|
||||||
|
|
||||||
if !src.IsValid() {
|
if !src.IsValid() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if dst.CanAddr() {
|
if dst.CanAddr() {
|
||||||
addr := dst.UnsafeAddr()
|
addr := dst.UnsafeAddr()
|
||||||
h := 17 * addr
|
h := 17 * addr
|
||||||
@ -58,7 +71,7 @@ func deepMerge(dst, src reflect.Value, visited map[uintptr]*visit, depth int, co
|
|||||||
typ := dst.Type()
|
typ := dst.Type()
|
||||||
for p := seen; p != nil; p = p.next {
|
for p := seen; p != nil; p = p.next {
|
||||||
if p.ptr == addr && p.typ == typ {
|
if p.ptr == addr && p.typ == typ {
|
||||||
return nil
|
return dst, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Remember, remember...
|
// Remember, remember...
|
||||||
@ -72,114 +85,124 @@ func deepMerge(dst, src reflect.Value, visited map[uintptr]*visit, depth int, co
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if dst.IsValid() && src.IsValid() && src.Type() != dst.Type() {
|
||||||
|
err = fmt.Errorf("cannot append two different types (%s, %s)", src.Kind(), dst.Kind())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
switch dst.Kind() {
|
switch dst.Kind() {
|
||||||
case reflect.Struct:
|
case reflect.Struct:
|
||||||
if hasExportedField(dst) {
|
if hasExportedField(dst) {
|
||||||
|
dstCp := reflect.New(dst.Type()).Elem()
|
||||||
for i, n := 0, dst.NumField(); i < n; i++ {
|
for i, n := 0, dst.NumField(); i < n; i++ {
|
||||||
if err = deepMerge(dst.Field(i), src.Field(i), visited, depth+1, config); err != nil {
|
dstField := dst.Field(i)
|
||||||
|
structField := dst.Type().Field(i)
|
||||||
|
// copy un-exported struct fields
|
||||||
|
if !isExportedComponent(&structField) {
|
||||||
|
rf := dstCp.Field(i)
|
||||||
|
rf = reflect.NewAt(rf.Type(), unsafe.Pointer(rf.UnsafeAddr())).Elem() //nolint:gosec
|
||||||
|
dstRF := dst.Field(i)
|
||||||
|
if !dst.Field(i).CanAddr() {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
dstRF = reflect.NewAt(dstRF.Type(), unsafe.Pointer(dstRF.UnsafeAddr())).Elem() //nolint:gosec
|
||||||
|
rf.Set(dstRF)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
dstField, err = deepMerge(dstField, src.Field(i), visited, depth+1, config)
|
||||||
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
dstCp.Field(i).Set(dstField)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if dst.CanSet() {
|
||||||
|
dst.Set(dstCp)
|
||||||
|
} else {
|
||||||
|
dst = dstCp
|
||||||
|
}
|
||||||
|
return
|
||||||
} else {
|
} else {
|
||||||
if dst.CanSet() && (!isEmptyValue(src) || overwriteWithEmptySrc) && (overwrite || isEmptyValue(dst)) {
|
if (isReflectNil(dst) || overwrite) && (!isEmptyValue(src) || overwriteWithEmptySrc) {
|
||||||
dst.Set(src)
|
dst = src
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
case reflect.Map:
|
case reflect.Map:
|
||||||
if dst.IsNil() && !src.IsNil() {
|
if dst.IsNil() && !src.IsNil() {
|
||||||
dst.Set(reflect.MakeMap(dst.Type()))
|
if dst.CanSet() {
|
||||||
|
dst.Set(reflect.MakeMap(dst.Type()))
|
||||||
|
} else {
|
||||||
|
dst = src
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for _, key := range src.MapKeys() {
|
for _, key := range src.MapKeys() {
|
||||||
srcElement := src.MapIndex(key)
|
srcElement := src.MapIndex(key)
|
||||||
|
dstElement := dst.MapIndex(key)
|
||||||
if !srcElement.IsValid() {
|
if !srcElement.IsValid() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
dstElement := dst.MapIndex(key)
|
if dst.MapIndex(key).IsValid() {
|
||||||
switch srcElement.Kind() {
|
k := dstElement.Interface()
|
||||||
case reflect.Chan, reflect.Func, reflect.Map, reflect.Interface, reflect.Slice:
|
dstElement = reflect.ValueOf(k)
|
||||||
if srcElement.IsNil() {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
fallthrough
|
|
||||||
default:
|
|
||||||
if !srcElement.CanInterface() {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
switch reflect.TypeOf(srcElement.Interface()).Kind() {
|
|
||||||
case reflect.Struct:
|
|
||||||
fallthrough
|
|
||||||
case reflect.Ptr:
|
|
||||||
fallthrough
|
|
||||||
case reflect.Map:
|
|
||||||
srcMapElm := srcElement
|
|
||||||
dstMapElm := dstElement
|
|
||||||
if srcMapElm.CanInterface() {
|
|
||||||
srcMapElm = reflect.ValueOf(srcMapElm.Interface())
|
|
||||||
if dstMapElm.IsValid() {
|
|
||||||
dstMapElm = reflect.ValueOf(dstMapElm.Interface())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if err = deepMerge(dstMapElm, srcMapElm, visited, depth+1, config); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
case reflect.Slice:
|
|
||||||
srcSlice := reflect.ValueOf(srcElement.Interface())
|
|
||||||
|
|
||||||
var dstSlice reflect.Value
|
|
||||||
if !dstElement.IsValid() || dstElement.IsNil() {
|
|
||||||
dstSlice = reflect.MakeSlice(srcSlice.Type(), 0, srcSlice.Len())
|
|
||||||
} else {
|
|
||||||
dstSlice = reflect.ValueOf(dstElement.Interface())
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isEmptyValue(src) || overwriteWithEmptySrc || overwriteSliceWithEmptySrc) && (overwrite || isEmptyValue(dst)) && !config.AppendSlice {
|
|
||||||
if typeCheck && srcSlice.Type() != dstSlice.Type() {
|
|
||||||
return fmt.Errorf("cannot override two slices with different type (%s, %s)", srcSlice.Type(), dstSlice.Type())
|
|
||||||
}
|
|
||||||
dstSlice = srcSlice
|
|
||||||
} else if config.AppendSlice {
|
|
||||||
if srcSlice.Type() != dstSlice.Type() {
|
|
||||||
return fmt.Errorf("cannot append two slices with different type (%s, %s)", srcSlice.Type(), dstSlice.Type())
|
|
||||||
}
|
|
||||||
dstSlice = reflect.AppendSlice(dstSlice, srcSlice)
|
|
||||||
}
|
|
||||||
dst.SetMapIndex(key, dstSlice)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if dstElement.IsValid() && !isEmptyValue(dstElement) && (reflect.TypeOf(srcElement.Interface()).Kind() == reflect.Map || reflect.TypeOf(srcElement.Interface()).Kind() == reflect.Slice) {
|
if isReflectNil(srcElement) {
|
||||||
|
if overwrite || isReflectNil(dstElement) {
|
||||||
|
dst.SetMapIndex(key, srcElement)
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if !srcElement.CanInterface() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if srcElement.IsValid() && ((srcElement.Kind() != reflect.Ptr && overwrite) || !dstElement.IsValid() || isEmptyValue(dstElement)) {
|
if srcElement.CanInterface() {
|
||||||
if dst.IsNil() {
|
srcElement = reflect.ValueOf(srcElement.Interface())
|
||||||
dst.Set(reflect.MakeMap(dst.Type()))
|
if dstElement.IsValid() {
|
||||||
|
dstElement = reflect.ValueOf(dstElement.Interface())
|
||||||
}
|
}
|
||||||
dst.SetMapIndex(key, srcElement)
|
|
||||||
}
|
}
|
||||||
|
dstElement, err = deepMerge(dstElement, srcElement, visited, depth+1, config)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
dst.SetMapIndex(key, dstElement)
|
||||||
|
|
||||||
}
|
}
|
||||||
case reflect.Slice:
|
case reflect.Slice:
|
||||||
if !dst.CanSet() {
|
newSlice := dst
|
||||||
break
|
|
||||||
}
|
|
||||||
if (!isEmptyValue(src) || overwriteWithEmptySrc || overwriteSliceWithEmptySrc) && (overwrite || isEmptyValue(dst)) && !config.AppendSlice {
|
if (!isEmptyValue(src) || overwriteWithEmptySrc || overwriteSliceWithEmptySrc) && (overwrite || isEmptyValue(dst)) && !config.AppendSlice {
|
||||||
dst.Set(src)
|
if typeCheck && src.Type() != dst.Type() {
|
||||||
} else if config.AppendSlice {
|
return dst, fmt.Errorf("cannot override two slices with different type (%s, %s)", src.Type(), dst.Type())
|
||||||
if src.Type() != dst.Type() {
|
|
||||||
return fmt.Errorf("cannot append two slice with different type (%s, %s)", src.Type(), dst.Type())
|
|
||||||
}
|
}
|
||||||
dst.Set(reflect.AppendSlice(dst, src))
|
newSlice = src
|
||||||
|
} else if config.AppendSlice {
|
||||||
|
if typeCheck && src.Type() != dst.Type() {
|
||||||
|
err = fmt.Errorf("cannot append two slice with different type (%s, %s)", src.Type(), dst.Type())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
newSlice = reflect.AppendSlice(dst, src)
|
||||||
}
|
}
|
||||||
case reflect.Ptr:
|
if dst.CanSet() {
|
||||||
fallthrough
|
dst.Set(newSlice)
|
||||||
case reflect.Interface:
|
} else {
|
||||||
if src.IsNil() {
|
dst = newSlice
|
||||||
|
}
|
||||||
|
case reflect.Ptr, reflect.Interface:
|
||||||
|
if isReflectNil(src) {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
if dst.Kind() != reflect.Ptr && src.Type().AssignableTo(dst.Type()) {
|
if dst.Kind() != reflect.Ptr && src.Type().AssignableTo(dst.Type()) {
|
||||||
if dst.IsNil() || overwrite {
|
if dst.IsNil() || overwrite {
|
||||||
if dst.CanSet() && (overwrite || isEmptyValue(dst)) {
|
if overwrite || isEmptyValue(dst) {
|
||||||
dst.Set(src)
|
if dst.CanSet() {
|
||||||
|
dst.Set(src)
|
||||||
|
} else {
|
||||||
|
dst = src
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
@ -191,28 +214,38 @@ func deepMerge(dst, src reflect.Value, visited map[uintptr]*visit, depth int, co
|
|||||||
dst.Set(src)
|
dst.Set(src)
|
||||||
}
|
}
|
||||||
} else if src.Kind() == reflect.Ptr {
|
} else if src.Kind() == reflect.Ptr {
|
||||||
if err = deepMerge(dst.Elem(), src.Elem(), visited, depth+1, config); err != nil {
|
if dst, err = deepMerge(dst.Elem(), src.Elem(), visited, depth+1, config); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
dst = dst.Addr()
|
||||||
} else if dst.Elem().Type() == src.Type() {
|
} else if dst.Elem().Type() == src.Type() {
|
||||||
if err = deepMerge(dst.Elem(), src, visited, depth+1, config); err != nil {
|
if dst, err = deepMerge(dst.Elem(), src, visited, depth+1, config); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return ErrDifferentArgumentsTypes
|
return dst, ErrDifferentArgumentsTypes
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
if dst.IsNil() || overwrite {
|
if dst.IsNil() || overwrite {
|
||||||
if dst.CanSet() && (overwrite || isEmptyValue(dst)) {
|
if (overwrite || isEmptyValue(dst)) && (overwriteWithEmptySrc || !isEmptyValue(src)) {
|
||||||
dst.Set(src)
|
if dst.CanSet() {
|
||||||
|
dst.Set(src)
|
||||||
|
} else {
|
||||||
|
dst = src
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if err = deepMerge(dst.Elem(), src.Elem(), visited, depth+1, config); err != nil {
|
} else if _, err = deepMerge(dst.Elem(), src.Elem(), visited, depth+1, config); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
if dst.CanSet() && (!isEmptyValue(src) || overwriteWithEmptySrc) && (overwrite || isEmptyValue(dst)) {
|
overwriteFull := (!isEmptyValue(src) || overwriteWithEmptySrc) && (overwrite || isEmptyValue(dst))
|
||||||
dst.Set(src)
|
if overwriteFull {
|
||||||
|
if dst.CanSet() {
|
||||||
|
dst.Set(src)
|
||||||
|
} else {
|
||||||
|
dst = src
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -246,7 +279,12 @@ func WithOverride(config *Config) {
|
|||||||
config.Overwrite = true
|
config.Overwrite = true
|
||||||
}
|
}
|
||||||
|
|
||||||
// WithOverride will make merge override empty dst slice with empty src slice.
|
// WithOverwriteWithEmptyValue will make merge override non empty dst attributes with empty src attributes values.
|
||||||
|
func WithOverwriteWithEmptyValue(config *Config) {
|
||||||
|
config.overwriteWithEmptyValue = true
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithOverrideEmptySlice will make merge override empty dst slice with empty src slice.
|
||||||
func WithOverrideEmptySlice(config *Config) {
|
func WithOverrideEmptySlice(config *Config) {
|
||||||
config.overwriteSliceWithEmptyValue = true
|
config.overwriteSliceWithEmptyValue = true
|
||||||
}
|
}
|
||||||
@ -276,8 +314,25 @@ func merge(dst, src interface{}, opts ...func(*Config)) error {
|
|||||||
if vDst, vSrc, err = resolveValues(dst, src); err != nil {
|
if vDst, vSrc, err = resolveValues(dst, src); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if !vDst.CanSet() {
|
||||||
|
return fmt.Errorf("cannot set dst, needs reference")
|
||||||
|
}
|
||||||
if vDst.Type() != vSrc.Type() {
|
if vDst.Type() != vSrc.Type() {
|
||||||
return ErrDifferentArgumentsTypes
|
return ErrDifferentArgumentsTypes
|
||||||
}
|
}
|
||||||
return deepMerge(vDst, vSrc, make(map[uintptr]*visit), 0, config)
|
_, err = deepMerge(vDst, vSrc, make(map[uintptr]*visit), 0, config)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsReflectNil is the reflect value provided nil
|
||||||
|
func isReflectNil(v reflect.Value) bool {
|
||||||
|
k := v.Kind()
|
||||||
|
switch k {
|
||||||
|
case reflect.Interface, reflect.Slice, reflect.Chan, reflect.Func, reflect.Map, reflect.Ptr:
|
||||||
|
// Both interface and slice are nil if first word is 0.
|
||||||
|
// Both are always bigger than a word; assume flagIndir.
|
||||||
|
return v.IsNil()
|
||||||
|
default:
|
||||||
|
return false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
10
vendor/github.com/vbauerster/mpb/v4/go.mod
generated
vendored
10
vendor/github.com/vbauerster/mpb/v4/go.mod
generated
vendored
@ -1,10 +0,0 @@
|
|||||||
module github.com/vbauerster/mpb/v4
|
|
||||||
|
|
||||||
require (
|
|
||||||
github.com/VividCortex/ewma v1.1.1
|
|
||||||
github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d
|
|
||||||
golang.org/x/crypto v0.0.0-20200214034016-1d94cc7ab1c6
|
|
||||||
golang.org/x/sys v0.0.0-20200217220822-9197077df867 // indirect
|
|
||||||
)
|
|
||||||
|
|
||||||
go 1.13
|
|
41
vendor/github.com/vbauerster/mpb/v4/proxyreader.go
generated
vendored
41
vendor/github.com/vbauerster/mpb/v4/proxyreader.go
generated
vendored
@ -1,41 +0,0 @@
|
|||||||
package mpb
|
|
||||||
|
|
||||||
import (
|
|
||||||
"io"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
type proxyReader struct {
|
|
||||||
io.ReadCloser
|
|
||||||
bar *Bar
|
|
||||||
iT time.Time
|
|
||||||
}
|
|
||||||
|
|
||||||
func (prox *proxyReader) Read(p []byte) (n int, err error) {
|
|
||||||
n, err = prox.ReadCloser.Read(p)
|
|
||||||
if n > 0 {
|
|
||||||
prox.bar.IncrBy(n, time.Since(prox.iT))
|
|
||||||
prox.iT = time.Now()
|
|
||||||
}
|
|
||||||
if err == io.EOF {
|
|
||||||
go prox.bar.SetTotal(0, true)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
type proxyWriterTo struct {
|
|
||||||
*proxyReader
|
|
||||||
wt io.WriterTo
|
|
||||||
}
|
|
||||||
|
|
||||||
func (prox *proxyWriterTo) WriteTo(w io.Writer) (n int64, err error) {
|
|
||||||
n, err = prox.wt.WriteTo(w)
|
|
||||||
if n > 0 {
|
|
||||||
prox.bar.IncrInt64(n, time.Since(prox.iT))
|
|
||||||
prox.iT = time.Now()
|
|
||||||
}
|
|
||||||
if err == io.EOF {
|
|
||||||
go prox.bar.SetTotal(0, true)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
@ -1,11 +1,7 @@
|
|||||||
language: go
|
language: go
|
||||||
|
|
||||||
go:
|
go:
|
||||||
- 1.12.x
|
- 1.14.x
|
||||||
- 1.13.x
|
|
||||||
|
|
||||||
env:
|
|
||||||
- GO111MODULE=on
|
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- go test -race ./...
|
- go test -race ./...
|
@ -25,8 +25,8 @@ import (
|
|||||||
"math/rand"
|
"math/rand"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/vbauerster/mpb/v4"
|
"github.com/vbauerster/mpb/v5"
|
||||||
"github.com/vbauerster/mpb/v4/decor"
|
"github.com/vbauerster/mpb/v5/decor"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@ -44,8 +44,7 @@ func main() {
|
|||||||
decor.Name(name, decor.WC{W: len(name) + 1, C: decor.DidentRight}),
|
decor.Name(name, decor.WC{W: len(name) + 1, C: decor.DidentRight}),
|
||||||
// replace ETA decorator with "done" message, OnComplete event
|
// replace ETA decorator with "done" message, OnComplete event
|
||||||
decor.OnComplete(
|
decor.OnComplete(
|
||||||
// ETA decorator with ewma age of 60, and width reservation of 4
|
decor.AverageETA(decor.ET_STYLE_GO, decor.WC{W: 4}), "done",
|
||||||
decor.EwmaETA(decor.ET_STYLE_GO, 60, decor.WC{W: 4}), "done",
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
mpb.AppendDecorators(decor.Percentage()),
|
mpb.AppendDecorators(decor.Percentage()),
|
||||||
@ -53,17 +52,15 @@ func main() {
|
|||||||
// simulating some work
|
// simulating some work
|
||||||
max := 100 * time.Millisecond
|
max := 100 * time.Millisecond
|
||||||
for i := 0; i < total; i++ {
|
for i := 0; i < total; i++ {
|
||||||
start := time.Now()
|
|
||||||
time.Sleep(time.Duration(rand.Intn(10)+1) * max / 10)
|
time.Sleep(time.Duration(rand.Intn(10)+1) * max / 10)
|
||||||
// since ewma decorator is used, we need to pass time.Since(start)
|
bar.Increment()
|
||||||
bar.Increment(time.Since(start))
|
|
||||||
}
|
}
|
||||||
// wait for our bar to complete and flush
|
// wait for our bar to complete and flush
|
||||||
p.Wait()
|
p.Wait()
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
#### [Rendering multiple bars](_examples/multiBars//main.go)
|
#### [Rendering multiple bars](_examples/multiBars/main.go)
|
||||||
```go
|
```go
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
// pass &wg (optional), so p will wait for it eventually
|
// pass &wg (optional), so p will wait for it eventually
|
||||||
@ -94,10 +91,13 @@ func main() {
|
|||||||
rng := rand.New(rand.NewSource(time.Now().UnixNano()))
|
rng := rand.New(rand.NewSource(time.Now().UnixNano()))
|
||||||
max := 100 * time.Millisecond
|
max := 100 * time.Millisecond
|
||||||
for i := 0; i < total; i++ {
|
for i := 0; i < total; i++ {
|
||||||
|
// start variable is solely for EWMA calculation
|
||||||
|
// EWMA's unit of measure is an iteration's duration
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
time.Sleep(time.Duration(rng.Intn(10)+1) * max / 10)
|
time.Sleep(time.Duration(rng.Intn(10)+1) * max / 10)
|
||||||
// since ewma decorator is used, we need to pass time.Since(start)
|
bar.Increment()
|
||||||
bar.Increment(time.Since(start))
|
// we need to call DecoratorEwmaUpdate to fulfill ewma decorator's contract
|
||||||
|
bar.DecoratorEwmaUpdate(time.Since(start))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
}
|
}
|
193
vendor/github.com/vbauerster/mpb/v4/bar.go → vendor/github.com/vbauerster/mpb/v5/bar.go
generated
vendored
193
vendor/github.com/vbauerster/mpb/v4/bar.go → vendor/github.com/vbauerster/mpb/v5/bar.go
generated
vendored
@ -5,51 +5,43 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
|
||||||
"log"
|
"log"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
"unicode/utf8"
|
"unicode/utf8"
|
||||||
|
|
||||||
"github.com/vbauerster/mpb/v4/decor"
|
"github.com/vbauerster/mpb/v5/decor"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Filler interface.
|
// BarFiller interface.
|
||||||
// Bar renders by calling Filler's Fill method. You can literally have
|
// Bar renders itself by calling BarFiller's Fill method. You can
|
||||||
// any bar kind, by implementing this interface and passing it to the
|
// literally have any bar kind, by implementing this interface and
|
||||||
// *Progress.Add method.
|
// passing it to the *Progress.Add(...) *Bar method.
|
||||||
type Filler interface {
|
type BarFiller interface {
|
||||||
Fill(w io.Writer, width int, stat *decor.Statistics)
|
Fill(w io.Writer, width int, stat *decor.Statistics)
|
||||||
}
|
}
|
||||||
|
|
||||||
// FillerFunc is function type adapter to convert function into Filler.
|
// BarFillerFunc is function type adapter to convert function into Filler.
|
||||||
type FillerFunc func(w io.Writer, width int, stat *decor.Statistics)
|
type BarFillerFunc func(w io.Writer, width int, stat *decor.Statistics)
|
||||||
|
|
||||||
func (f FillerFunc) Fill(w io.Writer, width int, stat *decor.Statistics) {
|
func (f BarFillerFunc) Fill(w io.Writer, width int, stat *decor.Statistics) {
|
||||||
f(w, width, stat)
|
f(w, width, stat)
|
||||||
}
|
}
|
||||||
|
|
||||||
// WrapFiller interface.
|
|
||||||
// If you're implementing custom Filler by wrapping a built-in one,
|
|
||||||
// it is necessary to implement this interface to retain functionality
|
|
||||||
// of built-in Filler.
|
|
||||||
type WrapFiller interface {
|
|
||||||
Base() Filler
|
|
||||||
}
|
|
||||||
|
|
||||||
// Bar represents a progress Bar.
|
// Bar represents a progress Bar.
|
||||||
type Bar struct {
|
type Bar struct {
|
||||||
priority int // used by heap
|
priority int // used by heap
|
||||||
index int // used by heap
|
index int // used by heap
|
||||||
|
|
||||||
extendedLines int
|
extendedLines int
|
||||||
toShutdown bool
|
toShutdown bool
|
||||||
toDrop bool
|
toDrop bool
|
||||||
noPop bool
|
noPop bool
|
||||||
operateState chan func(*bState)
|
hasEwmaDecorators bool
|
||||||
frameCh chan io.Reader
|
operateState chan func(*bState)
|
||||||
syncTableCh chan [][]chan int
|
frameCh chan io.Reader
|
||||||
completed chan bool
|
syncTableCh chan [][]chan int
|
||||||
|
completed chan bool
|
||||||
|
|
||||||
// cancel is called either by user or on complete event
|
// cancel is called either by user or on complete event
|
||||||
cancel func()
|
cancel func()
|
||||||
@ -66,21 +58,23 @@ type Bar struct {
|
|||||||
type extFunc func(in io.Reader, tw int, st *decor.Statistics) (out io.Reader, lines int)
|
type extFunc func(in io.Reader, tw int, st *decor.Statistics) (out io.Reader, lines int)
|
||||||
|
|
||||||
type bState struct {
|
type bState struct {
|
||||||
baseF Filler
|
baseF BarFiller
|
||||||
filler Filler
|
filler BarFiller
|
||||||
id int
|
id int
|
||||||
width int
|
width int
|
||||||
total int64
|
total int64
|
||||||
current int64
|
current int64
|
||||||
|
lastN int64
|
||||||
|
iterated bool
|
||||||
trimSpace bool
|
trimSpace bool
|
||||||
toComplete bool
|
toComplete bool
|
||||||
completeFlushed bool
|
completeFlushed bool
|
||||||
noPop bool
|
noPop bool
|
||||||
aDecorators []decor.Decorator
|
aDecorators []decor.Decorator
|
||||||
pDecorators []decor.Decorator
|
pDecorators []decor.Decorator
|
||||||
amountReceivers []decor.AmountReceiver
|
averageDecorators []decor.AverageDecorator
|
||||||
|
ewmaDecorators []decor.EwmaDecorator
|
||||||
shutdownListeners []decor.ShutdownListener
|
shutdownListeners []decor.ShutdownListener
|
||||||
averageAdjusters []decor.AverageAdjuster
|
|
||||||
bufP, bufB, bufA *bytes.Buffer
|
bufP, bufB, bufA *bytes.Buffer
|
||||||
extender extFunc
|
extender extFunc
|
||||||
|
|
||||||
@ -116,36 +110,13 @@ func newBar(container *Progress, bs *bState) *Bar {
|
|||||||
return bar
|
return bar
|
||||||
}
|
}
|
||||||
|
|
||||||
// RemoveAllPrependers removes all prepend functions.
|
|
||||||
func (b *Bar) RemoveAllPrependers() {
|
|
||||||
select {
|
|
||||||
case b.operateState <- func(s *bState) { s.pDecorators = nil }:
|
|
||||||
case <-b.done:
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// RemoveAllAppenders removes all append functions.
|
|
||||||
func (b *Bar) RemoveAllAppenders() {
|
|
||||||
select {
|
|
||||||
case b.operateState <- func(s *bState) { s.aDecorators = nil }:
|
|
||||||
case <-b.done:
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ProxyReader wraps r with metrics required for progress tracking.
|
// ProxyReader wraps r with metrics required for progress tracking.
|
||||||
|
// Panics if r is nil.
|
||||||
func (b *Bar) ProxyReader(r io.Reader) io.ReadCloser {
|
func (b *Bar) ProxyReader(r io.Reader) io.ReadCloser {
|
||||||
if r == nil {
|
if r == nil {
|
||||||
return nil
|
panic("expected non nil io.Reader")
|
||||||
}
|
}
|
||||||
rc, ok := r.(io.ReadCloser)
|
return newProxyReader(r, b)
|
||||||
if !ok {
|
|
||||||
rc = ioutil.NopCloser(r)
|
|
||||||
}
|
|
||||||
prox := &proxyReader{rc, b, time.Now()}
|
|
||||||
if wt, ok := r.(io.WriterTo); ok {
|
|
||||||
return &proxyWriterTo{prox, wt}
|
|
||||||
}
|
|
||||||
return prox
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ID returs id of the bar.
|
// ID returs id of the bar.
|
||||||
@ -170,8 +141,9 @@ func (b *Bar) Current() int64 {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetRefill sets refill, if supported by underlying Filler.
|
// SetRefill fills bar with refill rune up to amount argument.
|
||||||
// Useful for resume-able tasks.
|
// Given default bar style is "[=>-]<+", refill rune is '+'.
|
||||||
|
// To set bar style use mpb.BarStyle(string) BarOption.
|
||||||
func (b *Bar) SetRefill(amount int64) {
|
func (b *Bar) SetRefill(amount int64) {
|
||||||
type refiller interface {
|
type refiller interface {
|
||||||
SetRefill(int64)
|
SetRefill(int64)
|
||||||
@ -183,18 +155,8 @@ func (b *Bar) SetRefill(amount int64) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// AdjustAverageDecorators updates start time of all average decorators.
|
|
||||||
// Useful for resume-able tasks.
|
|
||||||
func (b *Bar) AdjustAverageDecorators(startTime time.Time) {
|
|
||||||
b.operateState <- func(s *bState) {
|
|
||||||
for _, adjuster := range s.averageAdjusters {
|
|
||||||
adjuster.AverageAdjust(startTime)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// TraverseDecorators traverses all available decorators and calls cb func on each.
|
// TraverseDecorators traverses all available decorators and calls cb func on each.
|
||||||
func (b *Bar) TraverseDecorators(cb decor.CBFunc) {
|
func (b *Bar) TraverseDecorators(cb func(decor.Decorator)) {
|
||||||
b.operateState <- func(s *bState) {
|
b.operateState <- func(s *bState) {
|
||||||
for _, decorators := range [...][]decor.Decorator{
|
for _, decorators := range [...][]decor.Decorator{
|
||||||
s.pDecorators,
|
s.pDecorators,
|
||||||
@ -208,7 +170,8 @@ func (b *Bar) TraverseDecorators(cb decor.CBFunc) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// SetTotal sets total dynamically.
|
// SetTotal sets total dynamically.
|
||||||
// Set complete to true, to trigger bar complete event now.
|
// If total is less or equal to zero it takes progress' current value.
|
||||||
|
// If complete is true, complete event will be triggered.
|
||||||
func (b *Bar) SetTotal(total int64, complete bool) {
|
func (b *Bar) SetTotal(total int64, complete bool) {
|
||||||
select {
|
select {
|
||||||
case b.operateState <- func(s *bState) {
|
case b.operateState <- func(s *bState) {
|
||||||
@ -227,13 +190,12 @@ func (b *Bar) SetTotal(total int64, complete bool) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetCurrent sets progress' current to arbitrary amount.
|
// SetCurrent sets progress' current to an arbitrary value.
|
||||||
func (b *Bar) SetCurrent(current int64, wdd ...time.Duration) {
|
func (b *Bar) SetCurrent(current int64) {
|
||||||
select {
|
select {
|
||||||
case b.operateState <- func(s *bState) {
|
case b.operateState <- func(s *bState) {
|
||||||
for _, ar := range s.amountReceivers {
|
s.iterated = true
|
||||||
ar.NextAmount(current-s.current, wdd...)
|
s.lastN = current - s.current
|
||||||
}
|
|
||||||
s.current = current
|
s.current = current
|
||||||
if s.total > 0 && s.current >= s.total {
|
if s.total > 0 && s.current >= s.total {
|
||||||
s.current = s.total
|
s.current = s.total
|
||||||
@ -245,25 +207,22 @@ func (b *Bar) SetCurrent(current int64, wdd ...time.Duration) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Increment is a shorthand for b.IncrInt64(1, wdd...).
|
// Increment is a shorthand for b.IncrInt64(1).
|
||||||
func (b *Bar) Increment(wdd ...time.Duration) {
|
func (b *Bar) Increment() {
|
||||||
b.IncrInt64(1, wdd...)
|
b.IncrInt64(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IncrBy is a shorthand for b.IncrInt64(int64(n), wdd...).
|
// IncrBy is a shorthand for b.IncrInt64(int64(n)).
|
||||||
func (b *Bar) IncrBy(n int, wdd ...time.Duration) {
|
func (b *Bar) IncrBy(n int) {
|
||||||
b.IncrInt64(int64(n), wdd...)
|
b.IncrInt64(int64(n))
|
||||||
}
|
}
|
||||||
|
|
||||||
// IncrInt64 increments progress bar by amount of n. wdd is an optional
|
// IncrInt64 increments progress by amount of n.
|
||||||
// work duration i.e. time.Since(start), which expected to be passed,
|
func (b *Bar) IncrInt64(n int64) {
|
||||||
// if any ewma based decorator is used.
|
|
||||||
func (b *Bar) IncrInt64(n int64, wdd ...time.Duration) {
|
|
||||||
select {
|
select {
|
||||||
case b.operateState <- func(s *bState) {
|
case b.operateState <- func(s *bState) {
|
||||||
for _, ar := range s.amountReceivers {
|
s.iterated = true
|
||||||
ar.NextAmount(n, wdd...)
|
s.lastN = n
|
||||||
}
|
|
||||||
s.current += n
|
s.current += n
|
||||||
if s.total > 0 && s.current >= s.total {
|
if s.total > 0 && s.current >= s.total {
|
||||||
s.current = s.total
|
s.current = s.total
|
||||||
@ -275,6 +234,34 @@ func (b *Bar) IncrInt64(n int64, wdd ...time.Duration) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DecoratorEwmaUpdate updates all EWMA based decorators. Should be
|
||||||
|
// called on each iteration, because EWMA's unit of measure is an
|
||||||
|
// iteration's duration. Panics if called before *Bar.Incr... family
|
||||||
|
// methods.
|
||||||
|
func (b *Bar) DecoratorEwmaUpdate(dur time.Duration) {
|
||||||
|
select {
|
||||||
|
case b.operateState <- func(s *bState) {
|
||||||
|
ewmaIterationUpdate(false, s, dur)
|
||||||
|
}:
|
||||||
|
case <-b.done:
|
||||||
|
ewmaIterationUpdate(true, b.cacheState, dur)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// DecoratorAverageAdjust adjusts all average based decorators. Call
|
||||||
|
// if you need to adjust start time of all average based decorators
|
||||||
|
// or after progress resume.
|
||||||
|
func (b *Bar) DecoratorAverageAdjust(start time.Time) {
|
||||||
|
select {
|
||||||
|
case b.operateState <- func(s *bState) {
|
||||||
|
for _, d := range s.averageDecorators {
|
||||||
|
d.AverageAdjust(start)
|
||||||
|
}
|
||||||
|
}:
|
||||||
|
case <-b.done:
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// SetPriority changes bar's order among multiple bars. Zero is highest
|
// SetPriority changes bar's order among multiple bars. Zero is highest
|
||||||
// priority, i.e. bar will be on top. If you don't need to set priority
|
// priority, i.e. bar will be on top. If you don't need to set priority
|
||||||
// dynamically, better use BarPriority option.
|
// dynamically, better use BarPriority option.
|
||||||
@ -368,25 +355,26 @@ func (b *Bar) panicToFrame(termWidth int) io.Reader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (b *Bar) subscribeDecorators() {
|
func (b *Bar) subscribeDecorators() {
|
||||||
var amountReceivers []decor.AmountReceiver
|
var averageDecorators []decor.AverageDecorator
|
||||||
|
var ewmaDecorators []decor.EwmaDecorator
|
||||||
var shutdownListeners []decor.ShutdownListener
|
var shutdownListeners []decor.ShutdownListener
|
||||||
var averageAdjusters []decor.AverageAdjuster
|
|
||||||
b.TraverseDecorators(func(d decor.Decorator) {
|
b.TraverseDecorators(func(d decor.Decorator) {
|
||||||
if d, ok := d.(decor.AmountReceiver); ok {
|
if d, ok := d.(decor.AverageDecorator); ok {
|
||||||
amountReceivers = append(amountReceivers, d)
|
averageDecorators = append(averageDecorators, d)
|
||||||
|
}
|
||||||
|
if d, ok := d.(decor.EwmaDecorator); ok {
|
||||||
|
ewmaDecorators = append(ewmaDecorators, d)
|
||||||
}
|
}
|
||||||
if d, ok := d.(decor.ShutdownListener); ok {
|
if d, ok := d.(decor.ShutdownListener); ok {
|
||||||
shutdownListeners = append(shutdownListeners, d)
|
shutdownListeners = append(shutdownListeners, d)
|
||||||
}
|
}
|
||||||
if d, ok := d.(decor.AverageAdjuster); ok {
|
|
||||||
averageAdjusters = append(averageAdjusters, d)
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
b.operateState <- func(s *bState) {
|
b.operateState <- func(s *bState) {
|
||||||
s.amountReceivers = amountReceivers
|
s.averageDecorators = averageDecorators
|
||||||
|
s.ewmaDecorators = ewmaDecorators
|
||||||
s.shutdownListeners = shutdownListeners
|
s.shutdownListeners = shutdownListeners
|
||||||
s.averageAdjusters = averageAdjusters
|
|
||||||
}
|
}
|
||||||
|
b.hasEwmaDecorators = len(ewmaDecorators) != 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *Bar) refreshTillShutdown() {
|
func (b *Bar) refreshTillShutdown() {
|
||||||
@ -475,3 +463,14 @@ func extractBaseDecorator(d decor.Decorator) decor.Decorator {
|
|||||||
}
|
}
|
||||||
return d
|
return d
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ewmaIterationUpdate(done bool, s *bState, dur time.Duration) {
|
||||||
|
if !done && !s.iterated {
|
||||||
|
panic("increment required before ewma iteration update")
|
||||||
|
} else {
|
||||||
|
s.iterated = false
|
||||||
|
}
|
||||||
|
for _, d := range s.ewmaDecorators {
|
||||||
|
d.EwmaUpdate(s.lastN, dur)
|
||||||
|
}
|
||||||
|
}
|
@ -4,8 +4,8 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"unicode/utf8"
|
"unicode/utf8"
|
||||||
|
|
||||||
"github.com/vbauerster/mpb/v4/decor"
|
"github.com/vbauerster/mpb/v5/decor"
|
||||||
"github.com/vbauerster/mpb/v4/internal"
|
"github.com/vbauerster/mpb/v5/internal"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -45,8 +45,8 @@ type barFiller struct {
|
|||||||
flush func(w io.Writer, bb [][]byte)
|
flush func(w io.Writer, bb [][]byte)
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewBarFiller constucts mpb.Filler, to be used with *Progress.Add(...) *Bar method.
|
// NewBarFiller constucts mpb.BarFiller, to be used with *Progress.Add(...) *Bar method.
|
||||||
func NewBarFiller(style string, reverse bool) Filler {
|
func NewBarFiller(style string, reverse bool) BarFiller {
|
||||||
if style == "" {
|
if style == "" {
|
||||||
style = DefaultBarStyle
|
style = DefaultBarStyle
|
||||||
}
|
}
|
@ -4,7 +4,7 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
"io"
|
"io"
|
||||||
|
|
||||||
"github.com/vbauerster/mpb/v4/decor"
|
"github.com/vbauerster/mpb/v5/decor"
|
||||||
)
|
)
|
||||||
|
|
||||||
// BarOption is a function option which changes the default behavior of a bar.
|
// BarOption is a function option which changes the default behavior of a bar.
|
||||||
@ -50,14 +50,9 @@ func BarWidth(width int) BarOption {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// BarReplaceOnComplete is deprecated. Use BarParkTo instead.
|
// BarQueueAfter queues this (being constructed) bar to relplace
|
||||||
func BarReplaceOnComplete(runningBar *Bar) BarOption {
|
// runningBar after it has been completed.
|
||||||
return BarParkTo(runningBar)
|
func BarQueueAfter(runningBar *Bar) BarOption {
|
||||||
}
|
|
||||||
|
|
||||||
// BarParkTo parks constructed bar into the runningBar. In other words,
|
|
||||||
// constructed bar will replace runningBar after it has been completed.
|
|
||||||
func BarParkTo(runningBar *Bar) BarOption {
|
|
||||||
if runningBar == nil {
|
if runningBar == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -66,28 +61,29 @@ func BarParkTo(runningBar *Bar) BarOption {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// BarRemoveOnComplete removes bar filler and decorators if any, on
|
// BarRemoveOnComplete removes both bar's filler and its decorators
|
||||||
// complete event.
|
// on complete event.
|
||||||
func BarRemoveOnComplete() BarOption {
|
func BarRemoveOnComplete() BarOption {
|
||||||
return func(s *bState) {
|
return func(s *bState) {
|
||||||
s.dropOnComplete = true
|
s.dropOnComplete = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// BarClearOnComplete clears bar filler only, on complete event.
|
// BarFillerClearOnComplete clears bar's filler on complete event.
|
||||||
func BarClearOnComplete() BarOption {
|
// It's shortcut for BarFillerOnComplete("").
|
||||||
return BarOnComplete("")
|
func BarFillerClearOnComplete() BarOption {
|
||||||
|
return BarFillerOnComplete("")
|
||||||
}
|
}
|
||||||
|
|
||||||
// BarOnComplete replaces bar filler with message, on complete event.
|
// BarFillerOnComplete replaces bar's filler with message, on complete event.
|
||||||
func BarOnComplete(message string) BarOption {
|
func BarFillerOnComplete(message string) BarOption {
|
||||||
return func(s *bState) {
|
return func(s *bState) {
|
||||||
s.filler = makeBarOnCompleteFiller(s.baseF, message)
|
s.filler = makeBarFillerOnComplete(s.baseF, message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func makeBarOnCompleteFiller(filler Filler, message string) Filler {
|
func makeBarFillerOnComplete(filler BarFiller, message string) BarFiller {
|
||||||
return FillerFunc(func(w io.Writer, width int, st *decor.Statistics) {
|
return BarFillerFunc(func(w io.Writer, width int, st *decor.Statistics) {
|
||||||
if st.Completed {
|
if st.Completed {
|
||||||
io.WriteString(w, message)
|
io.WriteString(w, message)
|
||||||
} else {
|
} else {
|
||||||
@ -107,7 +103,7 @@ func BarPriority(priority int) BarOption {
|
|||||||
|
|
||||||
// BarExtender is an option to extend bar to the next new line, with
|
// BarExtender is an option to extend bar to the next new line, with
|
||||||
// arbitrary output.
|
// arbitrary output.
|
||||||
func BarExtender(extender Filler) BarOption {
|
func BarExtender(extender BarFiller) BarOption {
|
||||||
if extender == nil {
|
if extender == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -116,7 +112,7 @@ func BarExtender(extender Filler) BarOption {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func makeExtFunc(extender Filler) extFunc {
|
func makeExtFunc(extender BarFiller) extFunc {
|
||||||
buf := new(bytes.Buffer)
|
buf := new(bytes.Buffer)
|
||||||
nl := []byte("\n")
|
nl := []byte("\n")
|
||||||
return func(r io.Reader, tw int, st *decor.Statistics) (io.Reader, int) {
|
return func(r io.Reader, tw int, st *decor.Statistics) (io.Reader, int) {
|
||||||
@ -132,9 +128,9 @@ func TrimSpace() BarOption {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// BarStyle overrides mpb.DefaultBarStyle, for example BarStyle("╢▌▌░╟").
|
// BarStyle overrides mpb.DefaultBarStyle which is "[=>-]<+".
|
||||||
// If you need to override `reverse tip` and `refill rune` set 6th and
|
// It's ok to pass string containing just 5 runes, for example "╢▌▌░╟",
|
||||||
// 7th rune respectively, for example BarStyle("[=>-]<+").
|
// if you don't need to override '<' (reverse tip) and '+' (refill rune).
|
||||||
func BarStyle(style string) BarOption {
|
func BarStyle(style string) BarOption {
|
||||||
if style == "" {
|
if style == "" {
|
||||||
return nil
|
return nil
|
||||||
@ -175,7 +171,7 @@ func SpinnerStyle(frames []string) BarOption {
|
|||||||
if len(frames) == 0 {
|
if len(frames) == 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
chk := func(filler Filler) (interface{}, bool) {
|
chk := func(filler BarFiller) (interface{}, bool) {
|
||||||
t, ok := filler.(*spinnerFiller)
|
t, ok := filler.(*spinnerFiller)
|
||||||
return t, ok
|
return t, ok
|
||||||
}
|
}
|
||||||
@ -189,7 +185,7 @@ func SpinnerStyle(frames []string) BarOption {
|
|||||||
// actual type. If you implement your own Filler, so most probably
|
// actual type. If you implement your own Filler, so most probably
|
||||||
// you'll need this. See BarStyle or SpinnerStyle for example.
|
// you'll need this. See BarStyle or SpinnerStyle for example.
|
||||||
func MakeFillerTypeSpecificBarOption(
|
func MakeFillerTypeSpecificBarOption(
|
||||||
typeChecker func(Filler) (interface{}, bool),
|
typeChecker func(BarFiller) (interface{}, bool),
|
||||||
cb func(interface{}),
|
cb func(interface{}),
|
||||||
) BarOption {
|
) BarOption {
|
||||||
return func(s *bState) {
|
return func(s *bState) {
|
@ -84,10 +84,17 @@ type Wrapper interface {
|
|||||||
Base() Decorator
|
Base() Decorator
|
||||||
}
|
}
|
||||||
|
|
||||||
// AmountReceiver interface.
|
// EwmaDecorator interface.
|
||||||
// EWMA based decorators need to implement this one.
|
// EWMA based decorators should implement this one.
|
||||||
type AmountReceiver interface {
|
type EwmaDecorator interface {
|
||||||
NextAmount(int64, ...time.Duration)
|
EwmaUpdate(int64, time.Duration)
|
||||||
|
}
|
||||||
|
|
||||||
|
// AverageDecorator interface.
|
||||||
|
// Average decorators should implement this interface to provide start
|
||||||
|
// time adjustment facility, for resume-able tasks.
|
||||||
|
type AverageDecorator interface {
|
||||||
|
AverageAdjust(time.Time)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ShutdownListener interface.
|
// ShutdownListener interface.
|
||||||
@ -97,17 +104,8 @@ type ShutdownListener interface {
|
|||||||
Shutdown()
|
Shutdown()
|
||||||
}
|
}
|
||||||
|
|
||||||
// AverageAdjuster interface.
|
|
||||||
// Average decorators should implement this interface to provide start
|
|
||||||
// time adjustment facility, for resume-able tasks.
|
|
||||||
type AverageAdjuster interface {
|
|
||||||
AverageAdjust(time.Time)
|
|
||||||
}
|
|
||||||
|
|
||||||
// CBFunc convenience call back func type.
|
|
||||||
type CBFunc func(Decorator)
|
|
||||||
|
|
||||||
// Global convenience instances of WC with sync width bit set.
|
// Global convenience instances of WC with sync width bit set.
|
||||||
|
// To be used with multiple bars only, i.e. not effective for single bar usage.
|
||||||
var (
|
var (
|
||||||
WCSyncWidth = WC{C: DSyncWidth}
|
WCSyncWidth = WC{C: DSyncWidth}
|
||||||
WCSyncWidthR = WC{C: DSyncWidthR}
|
WCSyncWidthR = WC{C: DSyncWidthR}
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Package decor provides common decorators for "github.com/vbauerster/mpb/v4" module.
|
Package decor provides common decorators for "github.com/vbauerster/mpb/v5" module.
|
||||||
|
|
||||||
Some decorators returned by this package might have a closure state. It is ok to use
|
Some decorators returned by this package might have a closure state. It is ok to use
|
||||||
decorators concurrently, unless you share the same decorator among multiple
|
decorators concurrently, unless you share the same decorator among multiple
|
@ -23,11 +23,11 @@ func (f TimeNormalizerFunc) Normalize(src time.Duration) time.Duration {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// EwmaETA exponential-weighted-moving-average based ETA decorator.
|
// EwmaETA exponential-weighted-moving-average based ETA decorator.
|
||||||
// Note that it's necessary to supply bar.Incr* methods with incremental
|
// For this decorator to work correctly you have to measure each
|
||||||
// work duration as second argument, in order for this decorator to
|
// iteration's duration and pass it to the
|
||||||
// work correctly. This decorator is a wrapper of MovingAverageETA.
|
// *Bar.DecoratorEwmaUpdate(time.Duration) method after each increment.
|
||||||
func EwmaETA(style TimeStyle, age float64, wcc ...WC) Decorator {
|
func EwmaETA(style TimeStyle, age float64, wcc ...WC) Decorator {
|
||||||
var average MovingAverage
|
var average ewma.MovingAverage
|
||||||
if age == 0 {
|
if age == 0 {
|
||||||
average = ewma.NewMovingAverage()
|
average = ewma.NewMovingAverage()
|
||||||
} else {
|
} else {
|
||||||
@ -46,7 +46,7 @@ func EwmaETA(style TimeStyle, age float64, wcc ...WC) Decorator {
|
|||||||
//
|
//
|
||||||
// `wcc` optional WC config
|
// `wcc` optional WC config
|
||||||
//
|
//
|
||||||
func MovingAverageETA(style TimeStyle, average MovingAverage, normalizer TimeNormalizer, wcc ...WC) Decorator {
|
func MovingAverageETA(style TimeStyle, average ewma.MovingAverage, normalizer TimeNormalizer, wcc ...WC) Decorator {
|
||||||
d := &movingAverageETA{
|
d := &movingAverageETA{
|
||||||
WC: initWC(wcc...),
|
WC: initWC(wcc...),
|
||||||
average: average,
|
average: average,
|
||||||
@ -72,12 +72,8 @@ func (d *movingAverageETA) Decor(s *Statistics) string {
|
|||||||
return d.FormatMsg(d.producer(remaining))
|
return d.FormatMsg(d.producer(remaining))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *movingAverageETA) NextAmount(n int64, wdd ...time.Duration) {
|
func (d *movingAverageETA) EwmaUpdate(n int64, dur time.Duration) {
|
||||||
var workDuration time.Duration
|
durPerItem := float64(dur) / float64(n)
|
||||||
for _, wd := range wdd {
|
|
||||||
workDuration = wd
|
|
||||||
}
|
|
||||||
durPerItem := float64(workDuration) / float64(n)
|
|
||||||
if math.IsInf(durPerItem, 0) || math.IsNaN(durPerItem) {
|
if math.IsInf(durPerItem, 0) || math.IsNaN(durPerItem) {
|
||||||
return
|
return
|
||||||
}
|
}
|
@ -7,11 +7,6 @@ import (
|
|||||||
"github.com/VividCortex/ewma"
|
"github.com/VividCortex/ewma"
|
||||||
)
|
)
|
||||||
|
|
||||||
// MovingAverage is the interface that computes a moving average over
|
|
||||||
// a time-series stream of numbers. The average may be over a window
|
|
||||||
// or exponentially decaying.
|
|
||||||
type MovingAverage = ewma.MovingAverage
|
|
||||||
|
|
||||||
type threadSafeMovingAverage struct {
|
type threadSafeMovingAverage struct {
|
||||||
ewma.MovingAverage
|
ewma.MovingAverage
|
||||||
mu sync.Mutex
|
mu sync.Mutex
|
||||||
@ -68,6 +63,6 @@ func (s *medianWindow) Set(value float64) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// NewMedian is fixed last 3 samples median MovingAverage.
|
// NewMedian is fixed last 3 samples median MovingAverage.
|
||||||
func NewMedian() MovingAverage {
|
func NewMedian() ewma.MovingAverage {
|
||||||
return NewThreadSafeMovingAverage(new(medianWindow))
|
return NewThreadSafeMovingAverage(new(medianWindow))
|
||||||
}
|
}
|
@ -5,7 +5,7 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"github.com/vbauerster/mpb/v4/internal"
|
"github.com/vbauerster/mpb/v5/internal"
|
||||||
)
|
)
|
||||||
|
|
||||||
type percentageType float64
|
type percentageType float64
|
@ -28,11 +28,11 @@ func (self *speedFormatter) Format(st fmt.State, verb rune) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// EwmaSpeed exponential-weighted-moving-average based speed decorator.
|
// EwmaSpeed exponential-weighted-moving-average based speed decorator.
|
||||||
// Note that it's necessary to supply bar.Incr* methods with incremental
|
// For this decorator to work correctly you have to measure each
|
||||||
// work duration as second argument, in order for this decorator to
|
// iteration's duration and pass it to the
|
||||||
// work correctly. This decorator is a wrapper of MovingAverageSpeed.
|
// *Bar.DecoratorEwmaUpdate(time.Duration) method after each increment.
|
||||||
func EwmaSpeed(unit int, format string, age float64, wcc ...WC) Decorator {
|
func EwmaSpeed(unit int, format string, age float64, wcc ...WC) Decorator {
|
||||||
var average MovingAverage
|
var average ewma.MovingAverage
|
||||||
if age == 0 {
|
if age == 0 {
|
||||||
average = ewma.NewMovingAverage()
|
average = ewma.NewMovingAverage()
|
||||||
} else {
|
} else {
|
||||||
@ -59,7 +59,7 @@ func EwmaSpeed(unit int, format string, age float64, wcc ...WC) Decorator {
|
|||||||
// unit=UnitKB, format="%.1f" output: "1.0MB/s"
|
// unit=UnitKB, format="%.1f" output: "1.0MB/s"
|
||||||
// unit=UnitKB, format="% .1f" output: "1.0 MB/s"
|
// unit=UnitKB, format="% .1f" output: "1.0 MB/s"
|
||||||
//
|
//
|
||||||
func MovingAverageSpeed(unit int, format string, average MovingAverage, wcc ...WC) Decorator {
|
func MovingAverageSpeed(unit int, format string, average ewma.MovingAverage, wcc ...WC) Decorator {
|
||||||
if format == "" {
|
if format == "" {
|
||||||
format = "%.0f"
|
format = "%.0f"
|
||||||
}
|
}
|
||||||
@ -89,12 +89,8 @@ func (d *movingAverageSpeed) Decor(s *Statistics) string {
|
|||||||
return d.FormatMsg(d.msg)
|
return d.FormatMsg(d.msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *movingAverageSpeed) NextAmount(n int64, wdd ...time.Duration) {
|
func (d *movingAverageSpeed) EwmaUpdate(n int64, dur time.Duration) {
|
||||||
var workDuration time.Duration
|
durPerByte := float64(dur) / float64(n)
|
||||||
for _, wd := range wdd {
|
|
||||||
workDuration = wd
|
|
||||||
}
|
|
||||||
durPerByte := float64(workDuration) / float64(n)
|
|
||||||
if math.IsInf(durPerByte, 0) || math.IsNaN(durPerByte) {
|
if math.IsInf(durPerByte, 0) || math.IsNaN(durPerByte) {
|
||||||
return
|
return
|
||||||
}
|
}
|
10
vendor/github.com/vbauerster/mpb/v5/go.mod
generated
vendored
Normal file
10
vendor/github.com/vbauerster/mpb/v5/go.mod
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
module github.com/vbauerster/mpb/v5
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/VividCortex/ewma v1.1.1
|
||||||
|
github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d
|
||||||
|
golang.org/x/crypto v0.0.0-20200311171314-f7b00557c8c4
|
||||||
|
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527 // indirect
|
||||||
|
)
|
||||||
|
|
||||||
|
go 1.14
|
@ -3,11 +3,11 @@ github.com/VividCortex/ewma v1.1.1/go.mod h1:2Tkkvm3sRDVXaiyucHiACn4cqf7DpdyLvmx
|
|||||||
github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d h1:licZJFw2RwpHMqeKTCYkitsPqHNxTmd4SNR5r94FGM8=
|
github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d h1:licZJFw2RwpHMqeKTCYkitsPqHNxTmd4SNR5r94FGM8=
|
||||||
github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d/go.mod h1:asat636LX7Bqt5lYEZ27JNDcqxfjdBQuJ/MM4CN/Lzo=
|
github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d/go.mod h1:asat636LX7Bqt5lYEZ27JNDcqxfjdBQuJ/MM4CN/Lzo=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20200214034016-1d94cc7ab1c6 h1:Sy5bstxEqwwbYs6n0/pBuxKENqOeZUgD45Gp3Q3pqLg=
|
golang.org/x/crypto v0.0.0-20200311171314-f7b00557c8c4 h1:QmwruyY+bKbDDL0BaglrbZABEali68eoMFhTZpCjYVA=
|
||||||
golang.org/x/crypto v0.0.0-20200214034016-1d94cc7ab1c6/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200311171314-f7b00557c8c4/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200217220822-9197077df867 h1:JoRuNIf+rpHl+VhScRQQvzbHed86tKkqwPMV34T8myw=
|
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527 h1:uYVVQ9WP/Ds2ROhcaGPeIdVq0RIXVLwsHlnvJ+cT1So=
|
||||||
golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
@ -12,8 +12,8 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/vbauerster/mpb/v4/cwriter"
|
"github.com/vbauerster/mpb/v5/cwriter"
|
||||||
"github.com/vbauerster/mpb/v4/decor"
|
"github.com/vbauerster/mpb/v5/decor"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -111,7 +111,7 @@ func (p *Progress) AddSpinner(total int64, alignment SpinnerAlignment, options .
|
|||||||
// Add creates a bar which renders itself by provided filler.
|
// Add creates a bar which renders itself by provided filler.
|
||||||
// Set total to 0, if you plan to update it later.
|
// Set total to 0, if you plan to update it later.
|
||||||
// Panics if *Progress instance is done, i.e. called after *Progress.Wait().
|
// Panics if *Progress instance is done, i.e. called after *Progress.Wait().
|
||||||
func (p *Progress) Add(total int64, filler Filler, options ...BarOption) *Bar {
|
func (p *Progress) Add(total int64, filler BarFiller, options ...BarOption) *Bar {
|
||||||
if filler == nil {
|
if filler == nil {
|
||||||
filler = NewBarFiller(DefaultBarStyle, false)
|
filler = NewBarFiller(DefaultBarStyle, false)
|
||||||
}
|
}
|
||||||
@ -166,7 +166,7 @@ func (p *Progress) setBarPriority(b *Bar, priority int) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateBarPriority same as *Bar.SetPriority.
|
// UpdateBarPriority same as *Bar.SetPriority(int).
|
||||||
func (p *Progress) UpdateBarPriority(b *Bar, priority int) {
|
func (p *Progress) UpdateBarPriority(b *Bar, priority int) {
|
||||||
p.setBarPriority(b, priority)
|
p.setBarPriority(b, priority)
|
||||||
}
|
}
|
||||||
@ -340,7 +340,7 @@ func (s *pState) updateSyncMatrix() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *pState) makeBarState(total int64, filler Filler, options ...BarOption) *bState {
|
func (s *pState) makeBarState(total int64, filler BarFiller, options ...BarOption) *bState {
|
||||||
bs := &bState{
|
bs := &bState{
|
||||||
total: total,
|
total: total,
|
||||||
baseF: extractBaseFiller(filler),
|
baseF: extractBaseFiller(filler),
|
||||||
@ -388,8 +388,11 @@ func syncWidth(matrix map[int][]chan int) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func extractBaseFiller(f Filler) Filler {
|
func extractBaseFiller(f BarFiller) BarFiller {
|
||||||
if f, ok := f.(WrapFiller); ok {
|
type wrapper interface {
|
||||||
|
Base() BarFiller
|
||||||
|
}
|
||||||
|
if f, ok := f.(wrapper); ok {
|
||||||
return extractBaseFiller(f.Base())
|
return extractBaseFiller(f.Base())
|
||||||
}
|
}
|
||||||
return f
|
return f
|
90
vendor/github.com/vbauerster/mpb/v5/proxyreader.go
generated
vendored
Normal file
90
vendor/github.com/vbauerster/mpb/v5/proxyreader.go
generated
vendored
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
package mpb
|
||||||
|
|
||||||
|
import (
|
||||||
|
"io"
|
||||||
|
"io/ioutil"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
type proxyReader struct {
|
||||||
|
io.ReadCloser
|
||||||
|
bar *Bar
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *proxyReader) Read(p []byte) (int, error) {
|
||||||
|
n, err := x.ReadCloser.Read(p)
|
||||||
|
x.bar.IncrBy(n)
|
||||||
|
if err == io.EOF {
|
||||||
|
go x.bar.SetTotal(0, true)
|
||||||
|
}
|
||||||
|
return n, err
|
||||||
|
}
|
||||||
|
|
||||||
|
type proxyWriterTo struct {
|
||||||
|
io.ReadCloser // *proxyReader
|
||||||
|
wt io.WriterTo
|
||||||
|
bar *Bar
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *proxyWriterTo) WriteTo(w io.Writer) (int64, error) {
|
||||||
|
n, err := x.wt.WriteTo(w)
|
||||||
|
x.bar.IncrInt64(n)
|
||||||
|
if err == io.EOF {
|
||||||
|
go x.bar.SetTotal(0, true)
|
||||||
|
}
|
||||||
|
return n, err
|
||||||
|
}
|
||||||
|
|
||||||
|
type ewmaProxyReader struct {
|
||||||
|
io.ReadCloser // *proxyReader
|
||||||
|
bar *Bar
|
||||||
|
iT time.Time
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ewmaProxyReader) Read(p []byte) (int, error) {
|
||||||
|
n, err := x.ReadCloser.Read(p)
|
||||||
|
if n > 0 {
|
||||||
|
x.bar.DecoratorEwmaUpdate(time.Since(x.iT))
|
||||||
|
x.iT = time.Now()
|
||||||
|
}
|
||||||
|
return n, err
|
||||||
|
}
|
||||||
|
|
||||||
|
type ewmaProxyWriterTo struct {
|
||||||
|
io.ReadCloser // *ewmaProxyReader
|
||||||
|
wt io.WriterTo // *proxyWriterTo
|
||||||
|
bar *Bar
|
||||||
|
iT time.Time
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ewmaProxyWriterTo) WriteTo(w io.Writer) (int64, error) {
|
||||||
|
n, err := x.wt.WriteTo(w)
|
||||||
|
if n > 0 {
|
||||||
|
x.bar.DecoratorEwmaUpdate(time.Since(x.iT))
|
||||||
|
x.iT = time.Now()
|
||||||
|
}
|
||||||
|
return n, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func newProxyReader(r io.Reader, bar *Bar) io.ReadCloser {
|
||||||
|
rc := toReadCloser(r)
|
||||||
|
rc = &proxyReader{rc, bar}
|
||||||
|
|
||||||
|
if wt, isWriterTo := r.(io.WriterTo); bar.hasEwmaDecorators {
|
||||||
|
now := time.Now()
|
||||||
|
rc = &ewmaProxyReader{rc, bar, now}
|
||||||
|
if isWriterTo {
|
||||||
|
rc = &ewmaProxyWriterTo{rc, wt, bar, now}
|
||||||
|
}
|
||||||
|
} else if isWriterTo {
|
||||||
|
rc = &proxyWriterTo{rc, wt, bar}
|
||||||
|
}
|
||||||
|
return rc
|
||||||
|
}
|
||||||
|
|
||||||
|
func toReadCloser(r io.Reader) io.ReadCloser {
|
||||||
|
if rc, ok := r.(io.ReadCloser); ok {
|
||||||
|
return rc
|
||||||
|
}
|
||||||
|
return ioutil.NopCloser(r)
|
||||||
|
}
|
@ -5,7 +5,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"unicode/utf8"
|
"unicode/utf8"
|
||||||
|
|
||||||
"github.com/vbauerster/mpb/v4/decor"
|
"github.com/vbauerster/mpb/v5/decor"
|
||||||
)
|
)
|
||||||
|
|
||||||
// SpinnerAlignment enum.
|
// SpinnerAlignment enum.
|
||||||
@ -27,8 +27,8 @@ type spinnerFiller struct {
|
|||||||
alignment SpinnerAlignment
|
alignment SpinnerAlignment
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewSpinnerFiller constucts mpb.Filler, to be used with *Progress.Add(...) *Bar method.
|
// NewSpinnerFiller constucts mpb.BarFiller, to be used with *Progress.Add(...) *Bar method.
|
||||||
func NewSpinnerFiller(style []string, alignment SpinnerAlignment) Filler {
|
func NewSpinnerFiller(style []string, alignment SpinnerAlignment) BarFiller {
|
||||||
if len(style) == 0 {
|
if len(style) == 0 {
|
||||||
style = DefaultSpinnerStyle
|
style = DefaultSpinnerStyle
|
||||||
}
|
}
|
2
vendor/github.com/xeipuuv/gojsonschema/.travis.yml
generated
vendored
2
vendor/github.com/xeipuuv/gojsonschema/.travis.yml
generated
vendored
@ -1,8 +1,8 @@
|
|||||||
language: go
|
language: go
|
||||||
go:
|
go:
|
||||||
- "1.10"
|
|
||||||
- "1.11"
|
- "1.11"
|
||||||
- "1.12"
|
- "1.12"
|
||||||
|
- "1.13"
|
||||||
before_install:
|
before_install:
|
||||||
- go get github.com/xeipuuv/gojsonreference
|
- go get github.com/xeipuuv/gojsonreference
|
||||||
- go get github.com/xeipuuv/gojsonpointer
|
- go get github.com/xeipuuv/gojsonpointer
|
||||||
|
5
vendor/github.com/xeipuuv/gojsonschema/draft.go
generated
vendored
5
vendor/github.com/xeipuuv/gojsonschema/draft.go
generated
vendored
@ -92,6 +92,11 @@ func parseSchemaURL(documentNode interface{}) (string, *Draft, error) {
|
|||||||
if isKind(documentNode, reflect.Bool) {
|
if isKind(documentNode, reflect.Bool) {
|
||||||
return "", nil, nil
|
return "", nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !isKind(documentNode, reflect.Map) {
|
||||||
|
return "", nil, errors.New("schema is invalid")
|
||||||
|
}
|
||||||
|
|
||||||
m := documentNode.(map[string]interface{})
|
m := documentNode.(map[string]interface{})
|
||||||
|
|
||||||
if existsMapKey(m, KEY_SCHEMA) {
|
if existsMapKey(m, KEY_SCHEMA) {
|
||||||
|
7
vendor/github.com/xeipuuv/gojsonschema/jsonLoader.go
generated
vendored
7
vendor/github.com/xeipuuv/gojsonschema/jsonLoader.go
generated
vendored
@ -33,6 +33,7 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"runtime"
|
"runtime"
|
||||||
@ -145,6 +146,12 @@ func (l *jsonReferenceLoader) LoadJSON() (interface{}, error) {
|
|||||||
if reference.HasFileScheme {
|
if reference.HasFileScheme {
|
||||||
|
|
||||||
filename := strings.TrimPrefix(refToURL.String(), "file://")
|
filename := strings.TrimPrefix(refToURL.String(), "file://")
|
||||||
|
filename, err = url.QueryUnescape(filename)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
if runtime.GOOS == "windows" {
|
if runtime.GOOS == "windows" {
|
||||||
// on Windows, a file URL may have an extra leading slash, use slashes
|
// on Windows, a file URL may have an extra leading slash, use slashes
|
||||||
// instead of backslashes, and have spaces escaped
|
// instead of backslashes, and have spaces escaped
|
||||||
|
3
vendor/golang.org/x/crypto/chacha20/chacha_arm64.go
generated
vendored
3
vendor/golang.org/x/crypto/chacha20/chacha_arm64.go
generated
vendored
@ -2,8 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build go1.11
|
// +build go1.11,!gccgo,!purego
|
||||||
// +build !gccgo,!appengine
|
|
||||||
|
|
||||||
package chacha20
|
package chacha20
|
||||||
|
|
||||||
|
3
vendor/golang.org/x/crypto/chacha20/chacha_arm64.s
generated
vendored
3
vendor/golang.org/x/crypto/chacha20/chacha_arm64.s
generated
vendored
@ -2,8 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build go1.11
|
// +build go1.11,!gccgo,!purego
|
||||||
// +build !gccgo,!appengine
|
|
||||||
|
|
||||||
#include "textflag.h"
|
#include "textflag.h"
|
||||||
|
|
||||||
|
27
vendor/golang.org/x/crypto/chacha20/chacha_generic.go
generated
vendored
27
vendor/golang.org/x/crypto/chacha20/chacha_generic.go
generated
vendored
@ -136,6 +136,33 @@ func quarterRound(a, b, c, d uint32) (uint32, uint32, uint32, uint32) {
|
|||||||
return a, b, c, d
|
return a, b, c, d
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetCounter sets the Cipher counter. The next invocation of XORKeyStream will
|
||||||
|
// behave as if (64 * counter) bytes had been encrypted so far.
|
||||||
|
//
|
||||||
|
// To prevent accidental counter reuse, SetCounter panics if counter is
|
||||||
|
// less than the current value.
|
||||||
|
func (s *Cipher) SetCounter(counter uint32) {
|
||||||
|
// Internally, s may buffer multiple blocks, which complicates this
|
||||||
|
// implementation slightly. When checking whether the counter has rolled
|
||||||
|
// back, we must use both s.counter and s.len to determine how many blocks
|
||||||
|
// we have already output.
|
||||||
|
outputCounter := s.counter - uint32(s.len)/blockSize
|
||||||
|
if counter < outputCounter {
|
||||||
|
panic("chacha20: SetCounter attempted to rollback counter")
|
||||||
|
}
|
||||||
|
|
||||||
|
// In the general case, we set the new counter value and reset s.len to 0,
|
||||||
|
// causing the next call to XORKeyStream to refill the buffer. However, if
|
||||||
|
// we're advancing within the existing buffer, we can save work by simply
|
||||||
|
// setting s.len.
|
||||||
|
if counter < s.counter {
|
||||||
|
s.len = int(s.counter-counter) * blockSize
|
||||||
|
} else {
|
||||||
|
s.counter = counter
|
||||||
|
s.len = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// XORKeyStream XORs each byte in the given slice with a byte from the
|
// XORKeyStream XORs each byte in the given slice with a byte from the
|
||||||
// cipher's key stream. Dst and src must overlap entirely or not at all.
|
// cipher's key stream. Dst and src must overlap entirely or not at all.
|
||||||
//
|
//
|
||||||
|
2
vendor/golang.org/x/crypto/chacha20/chacha_noasm.go
generated
vendored
2
vendor/golang.org/x/crypto/chacha20/chacha_noasm.go
generated
vendored
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build !arm64,!s390x,!ppc64le arm64,!go1.11 gccgo appengine
|
// +build !arm64,!s390x,!ppc64le arm64,!go1.11 gccgo purego
|
||||||
|
|
||||||
package chacha20
|
package chacha20
|
||||||
|
|
||||||
|
2
vendor/golang.org/x/crypto/chacha20/chacha_ppc64le.go
generated
vendored
2
vendor/golang.org/x/crypto/chacha20/chacha_ppc64le.go
generated
vendored
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build !gccgo,!appengine
|
// +build !gccgo,!purego
|
||||||
|
|
||||||
package chacha20
|
package chacha20
|
||||||
|
|
||||||
|
2
vendor/golang.org/x/crypto/chacha20/chacha_ppc64le.s
generated
vendored
2
vendor/golang.org/x/crypto/chacha20/chacha_ppc64le.s
generated
vendored
@ -19,7 +19,7 @@
|
|||||||
// The differences in this and the original implementation are
|
// The differences in this and the original implementation are
|
||||||
// due to the calling conventions and initialization of constants.
|
// due to the calling conventions and initialization of constants.
|
||||||
|
|
||||||
// +build !gccgo,!appengine
|
// +build !gccgo,!purego
|
||||||
|
|
||||||
#include "textflag.h"
|
#include "textflag.h"
|
||||||
|
|
||||||
|
2
vendor/golang.org/x/crypto/chacha20/chacha_s390x.go
generated
vendored
2
vendor/golang.org/x/crypto/chacha20/chacha_s390x.go
generated
vendored
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build !gccgo,!appengine
|
// +build !gccgo,!purego
|
||||||
|
|
||||||
package chacha20
|
package chacha20
|
||||||
|
|
||||||
|
2
vendor/golang.org/x/crypto/chacha20/chacha_s390x.s
generated
vendored
2
vendor/golang.org/x/crypto/chacha20/chacha_s390x.s
generated
vendored
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build !gccgo,!appengine
|
// +build !gccgo,!purego
|
||||||
|
|
||||||
#include "go_asm.h"
|
#include "go_asm.h"
|
||||||
#include "textflag.h"
|
#include "textflag.h"
|
||||||
|
69
vendor/golang.org/x/crypto/openpgp/packet/packet.go
generated
vendored
69
vendor/golang.org/x/crypto/openpgp/packet/packet.go
generated
vendored
@ -14,6 +14,7 @@ import (
|
|||||||
"crypto/rsa"
|
"crypto/rsa"
|
||||||
"io"
|
"io"
|
||||||
"math/big"
|
"math/big"
|
||||||
|
"math/bits"
|
||||||
|
|
||||||
"golang.org/x/crypto/cast5"
|
"golang.org/x/crypto/cast5"
|
||||||
"golang.org/x/crypto/openpgp/errors"
|
"golang.org/x/crypto/openpgp/errors"
|
||||||
@ -100,33 +101,65 @@ func (r *partialLengthReader) Read(p []byte) (n int, err error) {
|
|||||||
type partialLengthWriter struct {
|
type partialLengthWriter struct {
|
||||||
w io.WriteCloser
|
w io.WriteCloser
|
||||||
lengthByte [1]byte
|
lengthByte [1]byte
|
||||||
|
sentFirst bool
|
||||||
|
buf []byte
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// RFC 4880 4.2.2.4: the first partial length MUST be at least 512 octets long.
|
||||||
|
const minFirstPartialWrite = 512
|
||||||
|
|
||||||
func (w *partialLengthWriter) Write(p []byte) (n int, err error) {
|
func (w *partialLengthWriter) Write(p []byte) (n int, err error) {
|
||||||
for len(p) > 0 {
|
off := 0
|
||||||
for power := uint(14); power < 32; power-- {
|
if !w.sentFirst {
|
||||||
l := 1 << power
|
if len(w.buf) > 0 || len(p) < minFirstPartialWrite {
|
||||||
if len(p) >= l {
|
off = len(w.buf)
|
||||||
w.lengthByte[0] = 224 + uint8(power)
|
w.buf = append(w.buf, p...)
|
||||||
_, err = w.w.Write(w.lengthByte[:])
|
if len(w.buf) < minFirstPartialWrite {
|
||||||
if err != nil {
|
return len(p), nil
|
||||||
return
|
|
||||||
}
|
|
||||||
var m int
|
|
||||||
m, err = w.w.Write(p[:l])
|
|
||||||
n += m
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
p = p[l:]
|
|
||||||
break
|
|
||||||
}
|
}
|
||||||
|
p = w.buf
|
||||||
|
w.buf = nil
|
||||||
}
|
}
|
||||||
|
w.sentFirst = true
|
||||||
}
|
}
|
||||||
return
|
|
||||||
|
power := uint8(30)
|
||||||
|
for len(p) > 0 {
|
||||||
|
l := 1 << power
|
||||||
|
if len(p) < l {
|
||||||
|
power = uint8(bits.Len32(uint32(len(p)))) - 1
|
||||||
|
l = 1 << power
|
||||||
|
}
|
||||||
|
w.lengthByte[0] = 224 + power
|
||||||
|
_, err = w.w.Write(w.lengthByte[:])
|
||||||
|
if err == nil {
|
||||||
|
var m int
|
||||||
|
m, err = w.w.Write(p[:l])
|
||||||
|
n += m
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
if n < off {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
return n - off, err
|
||||||
|
}
|
||||||
|
p = p[l:]
|
||||||
|
}
|
||||||
|
return n - off, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (w *partialLengthWriter) Close() error {
|
func (w *partialLengthWriter) Close() error {
|
||||||
|
if len(w.buf) > 0 {
|
||||||
|
// In this case we can't send a 512 byte packet.
|
||||||
|
// Just send what we have.
|
||||||
|
p := w.buf
|
||||||
|
w.sentFirst = true
|
||||||
|
w.buf = nil
|
||||||
|
if _, err := w.Write(p); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
w.lengthByte[0] = 0
|
w.lengthByte[0] = 0
|
||||||
_, err := w.w.Write(w.lengthByte[:])
|
_, err := w.w.Write(w.lengthByte[:])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
2
vendor/golang.org/x/crypto/poly1305/mac_noasm.go
generated
vendored
2
vendor/golang.org/x/crypto/poly1305/mac_noasm.go
generated
vendored
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build !amd64,!ppc64le gccgo appengine
|
// +build !amd64,!ppc64le gccgo purego
|
||||||
|
|
||||||
package poly1305
|
package poly1305
|
||||||
|
|
||||||
|
2
vendor/golang.org/x/crypto/poly1305/sum_amd64.go
generated
vendored
2
vendor/golang.org/x/crypto/poly1305/sum_amd64.go
generated
vendored
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build amd64,!gccgo,!appengine
|
// +build !gccgo,!purego
|
||||||
|
|
||||||
package poly1305
|
package poly1305
|
||||||
|
|
||||||
|
2
vendor/golang.org/x/crypto/poly1305/sum_amd64.s
generated
vendored
2
vendor/golang.org/x/crypto/poly1305/sum_amd64.s
generated
vendored
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build amd64,!gccgo,!appengine
|
// +build !gccgo,!purego
|
||||||
|
|
||||||
#include "textflag.h"
|
#include "textflag.h"
|
||||||
|
|
||||||
|
2
vendor/golang.org/x/crypto/poly1305/sum_noasm.go
generated
vendored
2
vendor/golang.org/x/crypto/poly1305/sum_noasm.go
generated
vendored
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build s390x,!go1.11 !amd64,!s390x,!ppc64le gccgo appengine nacl
|
// +build s390x,!go1.11 !amd64,!s390x,!ppc64le gccgo purego
|
||||||
|
|
||||||
package poly1305
|
package poly1305
|
||||||
|
|
||||||
|
2
vendor/golang.org/x/crypto/poly1305/sum_ppc64le.go
generated
vendored
2
vendor/golang.org/x/crypto/poly1305/sum_ppc64le.go
generated
vendored
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build ppc64le,!gccgo,!appengine
|
// +build !gccgo,!purego
|
||||||
|
|
||||||
package poly1305
|
package poly1305
|
||||||
|
|
||||||
|
2
vendor/golang.org/x/crypto/poly1305/sum_ppc64le.s
generated
vendored
2
vendor/golang.org/x/crypto/poly1305/sum_ppc64le.s
generated
vendored
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build ppc64le,!gccgo,!appengine
|
// +build !gccgo,!purego
|
||||||
|
|
||||||
#include "textflag.h"
|
#include "textflag.h"
|
||||||
|
|
||||||
|
2
vendor/golang.org/x/crypto/poly1305/sum_s390x.go
generated
vendored
2
vendor/golang.org/x/crypto/poly1305/sum_s390x.go
generated
vendored
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build s390x,go1.11,!gccgo,!appengine
|
// +build go1.11,!gccgo,!purego
|
||||||
|
|
||||||
package poly1305
|
package poly1305
|
||||||
|
|
||||||
|
2
vendor/golang.org/x/crypto/poly1305/sum_s390x.s
generated
vendored
2
vendor/golang.org/x/crypto/poly1305/sum_s390x.s
generated
vendored
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build s390x,go1.11,!gccgo,!appengine
|
// +build go1.11,!gccgo,!purego
|
||||||
|
|
||||||
#include "textflag.h"
|
#include "textflag.h"
|
||||||
|
|
||||||
|
2
vendor/golang.org/x/crypto/poly1305/sum_vmsl_s390x.s
generated
vendored
2
vendor/golang.org/x/crypto/poly1305/sum_vmsl_s390x.s
generated
vendored
@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build s390x,go1.11,!gccgo,!appengine
|
// +build go1.11,!gccgo,!purego
|
||||||
|
|
||||||
#include "textflag.h"
|
#include "textflag.h"
|
||||||
|
|
||||||
|
4
vendor/golang.org/x/crypto/ssh/kex.go
generated
vendored
4
vendor/golang.org/x/crypto/ssh/kex.go
generated
vendored
@ -572,7 +572,7 @@ func (gex *dhGEXSHA) diffieHellman(theirPublic, myPrivate *big.Int) (*big.Int, e
|
|||||||
return new(big.Int).Exp(theirPublic, myPrivate, gex.p), nil
|
return new(big.Int).Exp(theirPublic, myPrivate, gex.p), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gex *dhGEXSHA) Client(c packetConn, randSource io.Reader, magics *handshakeMagics) (*kexResult, error) {
|
func (gex dhGEXSHA) Client(c packetConn, randSource io.Reader, magics *handshakeMagics) (*kexResult, error) {
|
||||||
// Send GexRequest
|
// Send GexRequest
|
||||||
kexDHGexRequest := kexDHGexRequestMsg{
|
kexDHGexRequest := kexDHGexRequestMsg{
|
||||||
MinBits: dhGroupExchangeMinimumBits,
|
MinBits: dhGroupExchangeMinimumBits,
|
||||||
@ -677,7 +677,7 @@ func (gex *dhGEXSHA) Client(c packetConn, randSource io.Reader, magics *handshak
|
|||||||
// Server half implementation of the Diffie Hellman Key Exchange with SHA1 and SHA256.
|
// Server half implementation of the Diffie Hellman Key Exchange with SHA1 and SHA256.
|
||||||
//
|
//
|
||||||
// This is a minimal implementation to satisfy the automated tests.
|
// This is a minimal implementation to satisfy the automated tests.
|
||||||
func (gex *dhGEXSHA) Server(c packetConn, randSource io.Reader, magics *handshakeMagics, priv Signer) (result *kexResult, err error) {
|
func (gex dhGEXSHA) Server(c packetConn, randSource io.Reader, magics *handshakeMagics, priv Signer) (result *kexResult, err error) {
|
||||||
// Receive GexRequest
|
// Receive GexRequest
|
||||||
packet, err := c.readPacket()
|
packet, err := c.readPacket()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
18
vendor/golang.org/x/crypto/ssh/keys.go
generated
vendored
18
vendor/golang.org/x/crypto/ssh/keys.go
generated
vendored
@ -1246,15 +1246,23 @@ func passphraseProtectedOpenSSHKey(passphrase []byte) openSSHDecryptFunc {
|
|||||||
}
|
}
|
||||||
key, iv := k[:32], k[32:]
|
key, iv := k[:32], k[32:]
|
||||||
|
|
||||||
if cipherName != "aes256-ctr" {
|
|
||||||
return nil, fmt.Errorf("ssh: unknown cipher %q, only supports %q", cipherName, "aes256-ctr")
|
|
||||||
}
|
|
||||||
c, err := aes.NewCipher(key)
|
c, err := aes.NewCipher(key)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
ctr := cipher.NewCTR(c, iv)
|
switch cipherName {
|
||||||
ctr.XORKeyStream(privKeyBlock, privKeyBlock)
|
case "aes256-ctr":
|
||||||
|
ctr := cipher.NewCTR(c, iv)
|
||||||
|
ctr.XORKeyStream(privKeyBlock, privKeyBlock)
|
||||||
|
case "aes256-cbc":
|
||||||
|
if len(privKeyBlock)%c.BlockSize() != 0 {
|
||||||
|
return nil, fmt.Errorf("ssh: invalid encrypted private key length, not a multiple of the block size")
|
||||||
|
}
|
||||||
|
cbc := cipher.NewCBCDecrypter(c, iv)
|
||||||
|
cbc.CryptBlocks(privKeyBlock, privKeyBlock)
|
||||||
|
default:
|
||||||
|
return nil, fmt.Errorf("ssh: unknown cipher %q, only supports %q or %q", cipherName, "aes256-ctr", "aes256-cbc")
|
||||||
|
}
|
||||||
|
|
||||||
return privKeyBlock, nil
|
return privKeyBlock, nil
|
||||||
}
|
}
|
||||||
|
19
vendor/golang.org/x/net/http2/transport.go
generated
vendored
19
vendor/golang.org/x/net/http2/transport.go
generated
vendored
@ -1892,7 +1892,9 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra
|
|||||||
return nil, errors.New("malformed response from server: malformed non-numeric status pseudo header")
|
return nil, errors.New("malformed response from server: malformed non-numeric status pseudo header")
|
||||||
}
|
}
|
||||||
|
|
||||||
header := make(http.Header)
|
regularFields := f.RegularFields()
|
||||||
|
strs := make([]string, len(regularFields))
|
||||||
|
header := make(http.Header, len(regularFields))
|
||||||
res := &http.Response{
|
res := &http.Response{
|
||||||
Proto: "HTTP/2.0",
|
Proto: "HTTP/2.0",
|
||||||
ProtoMajor: 2,
|
ProtoMajor: 2,
|
||||||
@ -1900,7 +1902,7 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra
|
|||||||
StatusCode: statusCode,
|
StatusCode: statusCode,
|
||||||
Status: status + " " + http.StatusText(statusCode),
|
Status: status + " " + http.StatusText(statusCode),
|
||||||
}
|
}
|
||||||
for _, hf := range f.RegularFields() {
|
for _, hf := range regularFields {
|
||||||
key := http.CanonicalHeaderKey(hf.Name)
|
key := http.CanonicalHeaderKey(hf.Name)
|
||||||
if key == "Trailer" {
|
if key == "Trailer" {
|
||||||
t := res.Trailer
|
t := res.Trailer
|
||||||
@ -1912,7 +1914,18 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra
|
|||||||
t[http.CanonicalHeaderKey(v)] = nil
|
t[http.CanonicalHeaderKey(v)] = nil
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
header[key] = append(header[key], hf.Value)
|
vv := header[key]
|
||||||
|
if vv == nil && len(strs) > 0 {
|
||||||
|
// More than likely this will be a single-element key.
|
||||||
|
// Most headers aren't multi-valued.
|
||||||
|
// Set the capacity on strs[0] to 1, so any future append
|
||||||
|
// won't extend the slice into the other strings.
|
||||||
|
vv, strs = strs[:1:1], strs[1:]
|
||||||
|
vv[0] = hf.Value
|
||||||
|
header[key] = vv
|
||||||
|
} else {
|
||||||
|
header[key] = append(vv, hf.Value)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
11
vendor/golang.org/x/sync/semaphore/semaphore.go
generated
vendored
11
vendor/golang.org/x/sync/semaphore/semaphore.go
generated
vendored
@ -67,7 +67,12 @@ func (s *Weighted) Acquire(ctx context.Context, n int64) error {
|
|||||||
// fix up the queue, just pretend we didn't notice the cancelation.
|
// fix up the queue, just pretend we didn't notice the cancelation.
|
||||||
err = nil
|
err = nil
|
||||||
default:
|
default:
|
||||||
|
isFront := s.waiters.Front() == elem
|
||||||
s.waiters.Remove(elem)
|
s.waiters.Remove(elem)
|
||||||
|
// If we're at the front and there're extra tokens left, notify other waiters.
|
||||||
|
if isFront && s.size > s.cur {
|
||||||
|
s.notifyWaiters()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
s.mu.Unlock()
|
s.mu.Unlock()
|
||||||
return err
|
return err
|
||||||
@ -97,6 +102,11 @@ func (s *Weighted) Release(n int64) {
|
|||||||
s.mu.Unlock()
|
s.mu.Unlock()
|
||||||
panic("semaphore: released more than held")
|
panic("semaphore: released more than held")
|
||||||
}
|
}
|
||||||
|
s.notifyWaiters()
|
||||||
|
s.mu.Unlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Weighted) notifyWaiters() {
|
||||||
for {
|
for {
|
||||||
next := s.waiters.Front()
|
next := s.waiters.Front()
|
||||||
if next == nil {
|
if next == nil {
|
||||||
@ -123,5 +133,4 @@ func (s *Weighted) Release(n int64) {
|
|||||||
s.waiters.Remove(next)
|
s.waiters.Remove(next)
|
||||||
close(w.ready)
|
close(w.ready)
|
||||||
}
|
}
|
||||||
s.mu.Unlock()
|
|
||||||
}
|
}
|
||||||
|
6
vendor/golang.org/x/sys/unix/errors_freebsd_386.go
generated
vendored
6
vendor/golang.org/x/sys/unix/errors_freebsd_386.go
generated
vendored
@ -8,6 +8,7 @@
|
|||||||
package unix
|
package unix
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
DLT_HHDLC = 0x79
|
||||||
IFF_SMART = 0x20
|
IFF_SMART = 0x20
|
||||||
IFT_1822 = 0x2
|
IFT_1822 = 0x2
|
||||||
IFT_A12MPPSWITCH = 0x82
|
IFT_A12MPPSWITCH = 0x82
|
||||||
@ -210,13 +211,18 @@ const (
|
|||||||
IFT_XETHER = 0x1a
|
IFT_XETHER = 0x1a
|
||||||
IPPROTO_MAXID = 0x34
|
IPPROTO_MAXID = 0x34
|
||||||
IPV6_FAITH = 0x1d
|
IPV6_FAITH = 0x1d
|
||||||
|
IPV6_MIN_MEMBERSHIPS = 0x1f
|
||||||
IP_FAITH = 0x16
|
IP_FAITH = 0x16
|
||||||
|
IP_MAX_SOURCE_FILTER = 0x400
|
||||||
|
IP_MIN_MEMBERSHIPS = 0x1f
|
||||||
MAP_NORESERVE = 0x40
|
MAP_NORESERVE = 0x40
|
||||||
MAP_RENAME = 0x20
|
MAP_RENAME = 0x20
|
||||||
NET_RT_MAXID = 0x6
|
NET_RT_MAXID = 0x6
|
||||||
RTF_PRCLONING = 0x10000
|
RTF_PRCLONING = 0x10000
|
||||||
RTM_OLDADD = 0x9
|
RTM_OLDADD = 0x9
|
||||||
RTM_OLDDEL = 0xa
|
RTM_OLDDEL = 0xa
|
||||||
|
RT_CACHING_CONTEXT = 0x1
|
||||||
|
RT_NORTREF = 0x2
|
||||||
SIOCADDRT = 0x8030720a
|
SIOCADDRT = 0x8030720a
|
||||||
SIOCALIFADDR = 0x8118691b
|
SIOCALIFADDR = 0x8118691b
|
||||||
SIOCDELRT = 0x8030720b
|
SIOCDELRT = 0x8030720b
|
||||||
|
6
vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go
generated
vendored
6
vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go
generated
vendored
@ -8,6 +8,7 @@
|
|||||||
package unix
|
package unix
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
DLT_HHDLC = 0x79
|
||||||
IFF_SMART = 0x20
|
IFF_SMART = 0x20
|
||||||
IFT_1822 = 0x2
|
IFT_1822 = 0x2
|
||||||
IFT_A12MPPSWITCH = 0x82
|
IFT_A12MPPSWITCH = 0x82
|
||||||
@ -210,13 +211,18 @@ const (
|
|||||||
IFT_XETHER = 0x1a
|
IFT_XETHER = 0x1a
|
||||||
IPPROTO_MAXID = 0x34
|
IPPROTO_MAXID = 0x34
|
||||||
IPV6_FAITH = 0x1d
|
IPV6_FAITH = 0x1d
|
||||||
|
IPV6_MIN_MEMBERSHIPS = 0x1f
|
||||||
IP_FAITH = 0x16
|
IP_FAITH = 0x16
|
||||||
|
IP_MAX_SOURCE_FILTER = 0x400
|
||||||
|
IP_MIN_MEMBERSHIPS = 0x1f
|
||||||
MAP_NORESERVE = 0x40
|
MAP_NORESERVE = 0x40
|
||||||
MAP_RENAME = 0x20
|
MAP_RENAME = 0x20
|
||||||
NET_RT_MAXID = 0x6
|
NET_RT_MAXID = 0x6
|
||||||
RTF_PRCLONING = 0x10000
|
RTF_PRCLONING = 0x10000
|
||||||
RTM_OLDADD = 0x9
|
RTM_OLDADD = 0x9
|
||||||
RTM_OLDDEL = 0xa
|
RTM_OLDDEL = 0xa
|
||||||
|
RT_CACHING_CONTEXT = 0x1
|
||||||
|
RT_NORTREF = 0x2
|
||||||
SIOCADDRT = 0x8040720a
|
SIOCADDRT = 0x8040720a
|
||||||
SIOCALIFADDR = 0x8118691b
|
SIOCALIFADDR = 0x8118691b
|
||||||
SIOCDELRT = 0x8040720b
|
SIOCDELRT = 0x8040720b
|
||||||
|
17
vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go
generated
vendored
Normal file
17
vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
// Copyright 2020 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// Constants that were deprecated or moved to enums in the FreeBSD headers. Keep
|
||||||
|
// them here for backwards compatibility.
|
||||||
|
|
||||||
|
package unix
|
||||||
|
|
||||||
|
const (
|
||||||
|
DLT_HHDLC = 0x79
|
||||||
|
IPV6_MIN_MEMBERSHIPS = 0x1f
|
||||||
|
IP_MAX_SOURCE_FILTER = 0x400
|
||||||
|
IP_MIN_MEMBERSHIPS = 0x1f
|
||||||
|
RT_CACHING_CONTEXT = 0x1
|
||||||
|
RT_NORTREF = 0x2
|
||||||
|
)
|
13
vendor/golang.org/x/sys/unix/mkall.sh
generated
vendored
13
vendor/golang.org/x/sys/unix/mkall.sh
generated
vendored
@ -124,7 +124,7 @@ freebsd_arm)
|
|||||||
freebsd_arm64)
|
freebsd_arm64)
|
||||||
mkerrors="$mkerrors -m64"
|
mkerrors="$mkerrors -m64"
|
||||||
mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'"
|
mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'"
|
||||||
mktypes="GOARCH=$GOARCH go tool cgo -godefs"
|
mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
|
||||||
;;
|
;;
|
||||||
netbsd_386)
|
netbsd_386)
|
||||||
mkerrors="$mkerrors -m32"
|
mkerrors="$mkerrors -m32"
|
||||||
@ -190,6 +190,12 @@ solaris_amd64)
|
|||||||
mksysnum=
|
mksysnum=
|
||||||
mktypes="GOARCH=$GOARCH go tool cgo -godefs"
|
mktypes="GOARCH=$GOARCH go tool cgo -godefs"
|
||||||
;;
|
;;
|
||||||
|
illumos_amd64)
|
||||||
|
mksyscall="go run mksyscall_solaris.go"
|
||||||
|
mkerrors=
|
||||||
|
mksysnum=
|
||||||
|
mktypes=
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo 'unrecognized $GOOS_$GOARCH: ' "$GOOSARCH" 1>&2
|
echo 'unrecognized $GOOS_$GOARCH: ' "$GOOSARCH" 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
@ -217,6 +223,11 @@ esac
|
|||||||
echo "$mksyscall -tags $GOOS,$GOARCH,go1.12 $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go";
|
echo "$mksyscall -tags $GOOS,$GOARCH,go1.12 $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go";
|
||||||
# 1.13 and later, syscalls via libSystem (including syscallPtr)
|
# 1.13 and later, syscalls via libSystem (including syscallPtr)
|
||||||
echo "$mksyscall -tags $GOOS,$GOARCH,go1.13 syscall_darwin.1_13.go |gofmt >zsyscall_$GOOSARCH.1_13.go";
|
echo "$mksyscall -tags $GOOS,$GOARCH,go1.13 syscall_darwin.1_13.go |gofmt >zsyscall_$GOOSARCH.1_13.go";
|
||||||
|
elif [ "$GOOS" == "illumos" ]; then
|
||||||
|
# illumos code generation requires a --illumos switch
|
||||||
|
echo "$mksyscall -illumos -tags illumos,$GOARCH syscall_illumos.go |gofmt > zsyscall_illumos_$GOARCH.go";
|
||||||
|
# illumos implies solaris, so solaris code generation is also required
|
||||||
|
echo "$mksyscall -tags solaris,$GOARCH syscall_solaris.go syscall_solaris_$GOARCH.go |gofmt >zsyscall_solaris_$GOARCH.go";
|
||||||
else
|
else
|
||||||
echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go";
|
echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go";
|
||||||
fi
|
fi
|
||||||
|
11
vendor/golang.org/x/sys/unix/mkerrors.sh
generated
vendored
11
vendor/golang.org/x/sys/unix/mkerrors.sh
generated
vendored
@ -105,6 +105,7 @@ includes_FreeBSD='
|
|||||||
#include <sys/capsicum.h>
|
#include <sys/capsicum.h>
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
#include <sys/disk.h>
|
||||||
#include <sys/event.h>
|
#include <sys/event.h>
|
||||||
#include <sys/select.h>
|
#include <sys/select.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
@ -199,6 +200,7 @@ struct ltchars {
|
|||||||
#include <linux/filter.h>
|
#include <linux/filter.h>
|
||||||
#include <linux/fs.h>
|
#include <linux/fs.h>
|
||||||
#include <linux/fscrypt.h>
|
#include <linux/fscrypt.h>
|
||||||
|
#include <linux/fsverity.h>
|
||||||
#include <linux/genetlink.h>
|
#include <linux/genetlink.h>
|
||||||
#include <linux/hdreg.h>
|
#include <linux/hdreg.h>
|
||||||
#include <linux/icmpv6.h>
|
#include <linux/icmpv6.h>
|
||||||
@ -280,6 +282,11 @@ struct ltchars {
|
|||||||
// for the tipc_subscr timeout __u32 field.
|
// for the tipc_subscr timeout __u32 field.
|
||||||
#undef TIPC_WAIT_FOREVER
|
#undef TIPC_WAIT_FOREVER
|
||||||
#define TIPC_WAIT_FOREVER 0xffffffff
|
#define TIPC_WAIT_FOREVER 0xffffffff
|
||||||
|
|
||||||
|
// Copied from linux/l2tp.h
|
||||||
|
// Including linux/l2tp.h here causes conflicts between linux/in.h
|
||||||
|
// and netinet/in.h included via net/route.h above.
|
||||||
|
#define IPPROTO_L2TP 115
|
||||||
'
|
'
|
||||||
|
|
||||||
includes_NetBSD='
|
includes_NetBSD='
|
||||||
@ -488,6 +495,7 @@ ccflags="$@"
|
|||||||
$2 !~ "RTF_BITS" &&
|
$2 !~ "RTF_BITS" &&
|
||||||
$2 ~ /^(IFF|IFT|NET_RT|RTM(GRP)?|RTF|RTV|RTA|RTAX)_/ ||
|
$2 ~ /^(IFF|IFT|NET_RT|RTM(GRP)?|RTF|RTV|RTA|RTAX)_/ ||
|
||||||
$2 ~ /^BIOC/ ||
|
$2 ~ /^BIOC/ ||
|
||||||
|
$2 ~ /^DIOC/ ||
|
||||||
$2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ ||
|
$2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ ||
|
||||||
$2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|LOCKS|MEMLOCK|MSGQUEUE|NICE|NOFILE|NPROC|RSS|RTPRIO|RTTIME|SIGPENDING|STACK)|RLIM_INFINITY/ ||
|
$2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|LOCKS|MEMLOCK|MSGQUEUE|NICE|NOFILE|NPROC|RSS|RTPRIO|RTTIME|SIGPENDING|STACK)|RLIM_INFINITY/ ||
|
||||||
$2 ~ /^PRIO_(PROCESS|PGRP|USER)/ ||
|
$2 ~ /^PRIO_(PROCESS|PGRP|USER)/ ||
|
||||||
@ -499,7 +507,8 @@ ccflags="$@"
|
|||||||
$2 ~ /^CAP_/ ||
|
$2 ~ /^CAP_/ ||
|
||||||
$2 ~ /^ALG_/ ||
|
$2 ~ /^ALG_/ ||
|
||||||
$2 ~ /^FS_(POLICY_FLAGS|KEY_DESC|ENCRYPTION_MODE|[A-Z0-9_]+_KEY_SIZE)/ ||
|
$2 ~ /^FS_(POLICY_FLAGS|KEY_DESC|ENCRYPTION_MODE|[A-Z0-9_]+_KEY_SIZE)/ ||
|
||||||
$2 ~ /^FS_IOC_.*ENCRYPTION/ ||
|
$2 ~ /^FS_IOC_.*(ENCRYPTION|VERITY|GETFLAGS)/ ||
|
||||||
|
$2 ~ /^FS_VERITY_/ ||
|
||||||
$2 ~ /^FSCRYPT_/ ||
|
$2 ~ /^FSCRYPT_/ ||
|
||||||
$2 ~ /^GRND_/ ||
|
$2 ~ /^GRND_/ ||
|
||||||
$2 ~ /^RND/ ||
|
$2 ~ /^RND/ ||
|
||||||
|
4
vendor/golang.org/x/sys/unix/syscall_freebsd.go
generated
vendored
4
vendor/golang.org/x/sys/unix/syscall_freebsd.go
generated
vendored
@ -521,10 +521,6 @@ func PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) {
|
|||||||
return ptrace(PTRACE_GETFPREGS, pid, uintptr(unsafe.Pointer(fpregsout)), 0)
|
return ptrace(PTRACE_GETFPREGS, pid, uintptr(unsafe.Pointer(fpregsout)), 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
func PtraceGetFsBase(pid int, fsbase *int64) (err error) {
|
|
||||||
return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0)
|
|
||||||
}
|
|
||||||
|
|
||||||
func PtraceGetRegs(pid int, regsout *Reg) (err error) {
|
func PtraceGetRegs(pid int, regsout *Reg) (err error) {
|
||||||
return ptrace(PTRACE_GETREGS, pid, uintptr(unsafe.Pointer(regsout)), 0)
|
return ptrace(PTRACE_GETREGS, pid, uintptr(unsafe.Pointer(regsout)), 0)
|
||||||
}
|
}
|
||||||
|
4
vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
generated
vendored
4
vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
generated
vendored
@ -55,6 +55,10 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
|
|||||||
|
|
||||||
func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
|
func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
|
||||||
|
|
||||||
|
func PtraceGetFsBase(pid int, fsbase *int64) (err error) {
|
||||||
|
return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0)
|
||||||
|
}
|
||||||
|
|
||||||
func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
|
func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
|
||||||
ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)}
|
ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)}
|
||||||
err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
|
err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
|
||||||
|
4
vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
generated
vendored
4
vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
generated
vendored
@ -55,6 +55,10 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
|
|||||||
|
|
||||||
func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
|
func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
|
||||||
|
|
||||||
|
func PtraceGetFsBase(pid int, fsbase *int64) (err error) {
|
||||||
|
return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0)
|
||||||
|
}
|
||||||
|
|
||||||
func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
|
func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
|
||||||
ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)}
|
ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)}
|
||||||
err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
|
err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user