diff --git www/minio-client/Makefile www/minio-client/Makefile index 203685d1179a..3d4aaff2fd40 100644 --- www/minio-client/Makefile +++ www/minio-client/Makefile @@ -26,9 +26,10 @@ MC= ${PORTNAME} .endif USE_GITHUB= yes -GHTAG= RELEASE.2019-10-09T22-54-57Z -COMMIT_ID= f93fe1330a3647b1afaff0ed8c188d2897bf391e +GHTAG= RELEASE.2020-01-03T20-33-14Z +COMMIT_ID= 6d1a41458bdb1eda4d7064af16dcf4692e2967bb GH_TUPLE= minio:mc:${GHTAG}:DEFAULT \ + StackExchange:wmi:cbe66965904d:stackexchange_wmi/vendor/github.com/StackExchange/wmi \ cheggaaa:pb:v1.0.28:cheggaaa_pb/vendor/github.com/cheggaaa/pb \ coreos:etcd:v3.3.12:coreos_etcd/vendor/github.com/coreos/etcd \ dgrijalva:jwt-go:v3.2.0:dgrijalva_jwt_go/vendor/github.com/dgrijalva/jwt-go \ @@ -36,44 +37,41 @@ GH_TUPLE= minio:mc:${GHTAG}:DEFAULT \ fatih:color:v1.7.0:fatih_color/vendor/github.com/fatih/color \ fatih:structs:v1.1.0:fatih_structs/vendor/github.com/fatih/structs \ go-check:check:788fd7840127:go_check_check/vendor/gopkg.in/check.v1 \ - go-ini:ini:v1.42.0:go_ini_ini/vendor/gopkg.in/ini.v1 \ - go-yaml:yaml:v2.2.2:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \ + go-ini:ini:v1.48.0:go_ini_ini/vendor/gopkg.in/ini.v1 \ + go-ole:go-ole:v1.2.4:go_ole_go_ole/vendor/github.com/go-ole/go-ole \ + go-yaml:yaml:v2.2.4:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \ gogo:protobuf:v1.2.1:gogo_protobuf/vendor/github.com/gogo/protobuf \ - golang:crypto:60c769a6c586:golang_crypto/vendor/golang.org/x/crypto \ - golang:net:74dc4d7220e7:golang_net/vendor/golang.org/x/net \ - golang:protobuf:v1.3.1:golang_protobuf/vendor/github.com/golang/protobuf \ - golang:sys:fde4db37ae7a:golang_sys/vendor/golang.org/x/sys \ + golang:crypto:497ca9f6d64f:golang_crypto/vendor/golang.org/x/crypto \ + golang:net:83d349e8ac1a:golang_net/vendor/golang.org/x/net \ + golang:protobuf:v1.3.2:golang_protobuf/vendor/github.com/golang/protobuf \ + golang:sys:33540a1f6037:golang_sys/vendor/golang.org/x/sys \ golang:text:v0.3.2:golang_text/vendor/golang.org/x/text \ - google:go-genproto:5fe7a883aa19:google_go_genproto/vendor/google.golang.org/genproto \ - grpc:grpc-go:v1.20.1:grpc_grpc_go/vendor/google.golang.org/grpc \ + google:go-genproto:24fa4b261c55:google_go_genproto/vendor/google.golang.org/genproto \ + grpc:grpc-go:v1.22.0:grpc_grpc_go/vendor/google.golang.org/grpc \ h2non:filetype:v1.0.5:h2non_filetype/vendor/gopkg.in/h2non/filetype.v1 \ hashicorp:errwrap:v1.0.0:hashicorp_errwrap/vendor/github.com/hashicorp/errwrap \ hashicorp:go-multierror:v1.0.0:hashicorp_go_multierror/vendor/github.com/hashicorp/go-multierror \ - howeyc:gopass:bf9dde6d0d2c:howeyc_gopass/vendor/github.com/howeyc/gopass \ inconshreveable:go-update:8152e7eb6ccf:inconshreveable_go_update/vendor/github.com/inconshreveable/go-update \ kr:pretty:v0.1.0:kr_pretty/vendor/github.com/kr/pretty \ kr:text:v0.1.0:kr_text/vendor/github.com/kr/text \ mattn:go-colorable:v0.1.1:mattn_go_colorable/vendor/github.com/mattn/go-colorable \ mattn:go-isatty:v0.0.7:mattn_go_isatty/vendor/github.com/mattn/go-isatty \ - mattn:go-runewidth:v0.0.4:mattn_go_runewidth/vendor/github.com/mattn/go-runewidth \ + mattn:go-runewidth:v0.0.5:mattn_go_runewidth/vendor/github.com/mattn/go-runewidth \ minio:cli:v1.22.0:minio_cli/vendor/github.com/minio/cli \ - minio:minio-go:v6.0.38:minio_minio_go/vendor/github.com/minio/minio-go/v6 \ - minio:minio:1c5b05c130fa:minio_minio/vendor/github.com/minio/minio \ + minio:minio-go:a5786a9c2a5b:minio_minio_go/vendor/github.com/minio/minio-go/v6 \ + minio:minio:0b7bd024fb30:minio_minio/vendor/github.com/minio/minio \ minio:sha256-simd:v0.1.1:minio_sha256_simd/vendor/github.com/minio/sha256-simd \ - minio:sio:v0.2.0:minio_sio/vendor/github.com/minio/sio \ mitchellh:go-homedir:v1.1.0:mitchellh_go_homedir/vendor/github.com/mitchellh/go-homedir \ ncw:directio:v1.0.5:ncw_directio/vendor/github.com/ncw/directio \ pkg:profile:v1.3.0:pkg_profile/vendor/github.com/pkg/profile \ pkg:xattr:v0.4.1:pkg_xattr/vendor/github.com/pkg/xattr \ posener:complete:6ffe496ea953:posener_complete/vendor/github.com/posener/complete \ rjeczalik:notify:v0.9.2:rjeczalik_notify/vendor/github.com/rjeczalik/notify \ - segmentio:go-prompt:f0d19b6901ad:segmentio_go_prompt/vendor/github.com/segmentio/go-prompt \ - tidwall:gjson:v1.2.1:tidwall_gjson/vendor/github.com/tidwall/gjson \ - tidwall:match:v1.0.1:tidwall_match/vendor/github.com/tidwall/match \ - tidwall:pretty:v1.0.0:tidwall_pretty/vendor/github.com/tidwall/pretty + secure-io:sio-go:v0.3.0:secure_io_sio_go/vendor/github.com/secure-io/sio-go \ + shirou:gopsutil:v2.18.12:shirou_gopsutil/vendor/github.com/shirou/gopsutil PLIST_FILES= bin/${MC} -GO_BUILDFLAGS= --ldflags='\ +GO_BUILDFLAGS= --ldflags=' \ -X github.com/minio/mc/cmd.Version=${GH_TAGNAME:C/RELEASE\.//:C|(..)-(..)-(..)Z|\1:\2:\3Z|} \ -X github.com/minio/mc/cmd.ReleaseTag=${GH_TAGNAME} \ -X github.com/minio/mc/cmd.CommitID=${COMMIT_ID} \ diff --git www/minio-client/distinfo www/minio-client/distinfo index 025b52b2d7d9..76a93d09cc8e 100644 --- www/minio-client/distinfo +++ www/minio-client/distinfo @@ -1,6 +1,8 @@ -TIMESTAMP = 1572029947 -SHA256 (minio-mc-2019.10.09.22.54.57-RELEASE.2019-10-09T22-54-57Z_GH0.tar.gz) = 14267e9150be21bc76e3347277cc2f2b666f0bc8ccfa6c92aca5e47e9c9292be -SIZE (minio-mc-2019.10.09.22.54.57-RELEASE.2019-10-09T22-54-57Z_GH0.tar.gz) = 295579 +TIMESTAMP = 1578338326 +SHA256 (minio-mc-2020.01.03.20.33.14-RELEASE.2020-01-03T20-33-14Z_GH0.tar.gz) = bb76741e2bc88f805af6d7764aed4b06d55aae68a6a34fd1b9e3bd89c8980d23 +SIZE (minio-mc-2020.01.03.20.33.14-RELEASE.2020-01-03T20-33-14Z_GH0.tar.gz) = 348931 +SHA256 (StackExchange-wmi-cbe66965904d_GH0.tar.gz) = 14dbc4af6952acdb1b941d002cd36fd2299aa6b3144cbcbddbb032c47f816da5 +SIZE (StackExchange-wmi-cbe66965904d_GH0.tar.gz) = 11279 SHA256 (cheggaaa-pb-v1.0.28_GH0.tar.gz) = f745c5636d3fb59bffab5f9d2a745a94a9608166c20c90936fc66848a5e816e6 SIZE (cheggaaa-pb-v1.0.28_GH0.tar.gz) = 11788 SHA256 (coreos-etcd-v3.3.12_GH0.tar.gz) = 0452a98bd485d757fd85d2182f8eac8c2dad315bcb6cf29a797ced9e2669c413 @@ -15,34 +17,34 @@ SHA256 (fatih-structs-v1.1.0_GH0.tar.gz) = 7479adacd8172f74968da4e1e14f1cc47c0bc SIZE (fatih-structs-v1.1.0_GH0.tar.gz) = 14444 SHA256 (go-check-check-788fd7840127_GH0.tar.gz) = b7c9de01f3ca7111d889f30f2bbcc36eda4d07c09f032aaba83e34a324146bae SIZE (go-check-check-788fd7840127_GH0.tar.gz) = 31597 -SHA256 (go-ini-ini-v1.42.0_GH0.tar.gz) = 49136717e5db9000e02f86807cfd9faa98f943553a3c40319020b7c32e7c142c -SIZE (go-ini-ini-v1.42.0_GH0.tar.gz) = 35078 -SHA256 (go-yaml-yaml-v2.2.2_GH0.tar.gz) = 42c3e4ef9eca2860d22b3c6c5582c6c13fb4b417e5ebc1acc56ee5e2c4ddcaff -SIZE (go-yaml-yaml-v2.2.2_GH0.tar.gz) = 70656 +SHA256 (go-ini-ini-v1.48.0_GH0.tar.gz) = 4ac78ccf639d28331d446908df6365efd2737fef3e8b19a02c95dd0997cccccf +SIZE (go-ini-ini-v1.48.0_GH0.tar.gz) = 37076 +SHA256 (go-ole-go-ole-v1.2.4_GH0.tar.gz) = 1f30df494ffc50c133c5f276f64c94820046b1a3a660c0cca49a5c3a8106db11 +SIZE (go-ole-go-ole-v1.2.4_GH0.tar.gz) = 51655 +SHA256 (go-yaml-yaml-v2.2.4_GH0.tar.gz) = 9004c9709200d52ef6e5c69af3f71f3adb1a2b7e884ea7597f306bf54b1f007c +SIZE (go-yaml-yaml-v2.2.4_GH0.tar.gz) = 72209 SHA256 (gogo-protobuf-v1.2.1_GH0.tar.gz) = 99e423905ba8921e86817607a5294ffeedb66fdd4a85efce5eb2848f715fdb3a SIZE (gogo-protobuf-v1.2.1_GH0.tar.gz) = 2017393 -SHA256 (golang-crypto-60c769a6c586_GH0.tar.gz) = 1fadbcecc014d9f4beaa2192f8709073a87d9e4edc223179b54881f13d7b132c -SIZE (golang-crypto-60c769a6c586_GH0.tar.gz) = 1693081 -SHA256 (golang-net-74dc4d7220e7_GH0.tar.gz) = e974b081e105d9c61374fd026aa89bff010cc58b676dddf67a319dbba8df35fa -SIZE (golang-net-74dc4d7220e7_GH0.tar.gz) = 1099877 -SHA256 (golang-protobuf-v1.3.1_GH0.tar.gz) = 3f3a6123054a9847093c119895f1660612f301fe95358f3a6a1a33fd0933e6cf -SIZE (golang-protobuf-v1.3.1_GH0.tar.gz) = 310884 -SHA256 (golang-sys-fde4db37ae7a_GH0.tar.gz) = b6aab4e92d5d8fe85ca0dd229bfb75c91290951a3bf3b95087459e5a4eae86a4 -SIZE (golang-sys-fde4db37ae7a_GH0.tar.gz) = 1455218 +SHA256 (golang-crypto-497ca9f6d64f_GH0.tar.gz) = 804e2779ac334f8933c0fc68936536131cb0899d15f64132d6541fa9f333db8d +SIZE (golang-crypto-497ca9f6d64f_GH0.tar.gz) = 1711629 +SHA256 (golang-net-83d349e8ac1a_GH0.tar.gz) = 5752c376bc6383bf2055281336101c062b881f17ded2e960d718c8256023f9c7 +SIZE (golang-net-83d349e8ac1a_GH0.tar.gz) = 1103298 +SHA256 (golang-protobuf-v1.3.2_GH0.tar.gz) = c9cda622857a17cf0877c5ba76688a931883e505f40744c9495638b6e3da1f65 +SIZE (golang-protobuf-v1.3.2_GH0.tar.gz) = 312285 +SHA256 (golang-sys-33540a1f6037_GH0.tar.gz) = 09ebdf007413c2eaddce123137443d08d1848be410c58896e772f0481ec385d5 +SIZE (golang-sys-33540a1f6037_GH0.tar.gz) = 1497659 SHA256 (golang-text-v0.3.2_GH0.tar.gz) = 0b9309698f5708531c5377ab1e29b423a6d9e20c55a8d386c3b8283428212f22 SIZE (golang-text-v0.3.2_GH0.tar.gz) = 7168069 -SHA256 (google-go-genproto-5fe7a883aa19_GH0.tar.gz) = 85dfb5a84a90eb3f12b033cd2edb6db8f44611f3f49485658d5f3941c1f44b9a -SIZE (google-go-genproto-5fe7a883aa19_GH0.tar.gz) = 4513720 -SHA256 (grpc-grpc-go-v1.20.1_GH0.tar.gz) = 109f4389cb22f2293a9640a3dd8d3a6d837985615353025c33c7d2923409c8ac -SIZE (grpc-grpc-go-v1.20.1_GH0.tar.gz) = 707599 +SHA256 (google-go-genproto-24fa4b261c55_GH0.tar.gz) = 96481b64c5971de2dd22d7c6f764d2acbeb4cd85ab6166856284115c3f99238c +SIZE (google-go-genproto-24fa4b261c55_GH0.tar.gz) = 5332241 +SHA256 (grpc-grpc-go-v1.22.0_GH0.tar.gz) = 99fa0aae21084a8726ce78c8f81397956908139311b29a5f95ab55a2831cd0d8 +SIZE (grpc-grpc-go-v1.22.0_GH0.tar.gz) = 742470 SHA256 (h2non-filetype-v1.0.5_GH0.tar.gz) = b85917fdb72b8d32626c6bb7fbdf6ef5826c68905de381a20f9acb215cb1dce8 SIZE (h2non-filetype-v1.0.5_GH0.tar.gz) = 685707 SHA256 (hashicorp-errwrap-v1.0.0_GH0.tar.gz) = 26afc0e5895c6ce87c881c5c02c682ccc9a08174a9c27ca26d4a1e72dbf78128 SIZE (hashicorp-errwrap-v1.0.0_GH0.tar.gz) = 8346 SHA256 (hashicorp-go-multierror-v1.0.0_GH0.tar.gz) = 5ae83eea62b2c845d41087c38c878741337e092db114b9a7ca9aebe5bf1dd264 SIZE (hashicorp-go-multierror-v1.0.0_GH0.tar.gz) = 10066 -SHA256 (howeyc-gopass-bf9dde6d0d2c_GH0.tar.gz) = 4f69179eda2622017750b469868d78c72e9c83da8c8af4d06d758b0876515dfb -SIZE (howeyc-gopass-bf9dde6d0d2c_GH0.tar.gz) = 11290 SHA256 (inconshreveable-go-update-8152e7eb6ccf_GH0.tar.gz) = 507bf16c9e400a4e86954357534d932a18a3c9bbfdd1d6b8f58ddf33b84f7001 SIZE (inconshreveable-go-update-8152e7eb6ccf_GH0.tar.gz) = 27137 SHA256 (kr-pretty-v0.1.0_GH0.tar.gz) = 3aeb5d90b719765781befb9f156d0d0b8e5a7aafbcf15321e9eabbd35df31358 @@ -53,18 +55,16 @@ SHA256 (mattn-go-colorable-v0.1.1_GH0.tar.gz) = 41773345d2a1037a37942b96e04a8ed5 SIZE (mattn-go-colorable-v0.1.1_GH0.tar.gz) = 8518 SHA256 (mattn-go-isatty-v0.0.7_GH0.tar.gz) = 80b6b3e4fee3b15864f23d622129c17ba222786f8c93bb01f8805f3cb91dfefe SIZE (mattn-go-isatty-v0.0.7_GH0.tar.gz) = 3559 -SHA256 (mattn-go-runewidth-v0.0.4_GH0.tar.gz) = 1973c2de25bc69c3786a00e8118f4d22aa0d040bdfe46c8c8c30419b23e53dfe -SIZE (mattn-go-runewidth-v0.0.4_GH0.tar.gz) = 19827 +SHA256 (mattn-go-runewidth-v0.0.5_GH0.tar.gz) = e71ab4b8f7110d156613fd85e3fbddf6239770be68598a5425f9c612a3c282c4 +SIZE (mattn-go-runewidth-v0.0.5_GH0.tar.gz) = 16014 SHA256 (minio-cli-v1.22.0_GH0.tar.gz) = f91306a2f1f434e9c31d737914288661286b329a3008f42b7212c6c9f15c3fca SIZE (minio-cli-v1.22.0_GH0.tar.gz) = 58896 -SHA256 (minio-minio-go-v6.0.38_GH0.tar.gz) = 4a7f105ba377f44a5826af6d3572dc9836537c52bf220cf6e4342d021feb1933 -SIZE (minio-minio-go-v6.0.38_GH0.tar.gz) = 194238 -SHA256 (minio-minio-1c5b05c130fa_GH0.tar.gz) = 3ab6b433449c7b067509a1bdd4677f0bf970ed1bb8c9bfda9fc3b3c57ad7afc8 -SIZE (minio-minio-1c5b05c130fa_GH0.tar.gz) = 7079370 +SHA256 (minio-minio-go-a5786a9c2a5b_GH0.tar.gz) = 86ac8a84670cc2f8f605903058a330a3539c5d8656dda1943bc3664e8a4500fd +SIZE (minio-minio-go-a5786a9c2a5b_GH0.tar.gz) = 200969 +SHA256 (minio-minio-0b7bd024fb30_GH0.tar.gz) = d0a16263017c5728abe59f9d506312971e4bf56f958caf7a5c1ca03f11f9086c +SIZE (minio-minio-0b7bd024fb30_GH0.tar.gz) = 7145332 SHA256 (minio-sha256-simd-v0.1.1_GH0.tar.gz) = bc1f1e80dc1291f6d26933658155488cc895f6b8a4944479d462cf5a79112109 SIZE (minio-sha256-simd-v0.1.1_GH0.tar.gz) = 65024 -SHA256 (minio-sio-v0.2.0_GH0.tar.gz) = 95ae305693de1712ed30ff0845d8afd23b6660e61a91a95c03d01c6bc36169f7 -SIZE (minio-sio-v0.2.0_GH0.tar.gz) = 53750 SHA256 (mitchellh-go-homedir-v1.1.0_GH0.tar.gz) = 646671c73a84a8dfb4a5a76b80c7b63549ffefa906524d45077301bc7da76600 SIZE (mitchellh-go-homedir-v1.1.0_GH0.tar.gz) = 3362 SHA256 (ncw-directio-v1.0.5_GH0.tar.gz) = d21504ec4d2d13b708454388ac877f5ac7e8a60333da07e98b38626bcf4dadcd @@ -77,11 +77,7 @@ SHA256 (posener-complete-6ffe496ea953_GH0.tar.gz) = 27948f558bcc0d6869d14bffb970 SIZE (posener-complete-6ffe496ea953_GH0.tar.gz) = 22135 SHA256 (rjeczalik-notify-v0.9.2_GH0.tar.gz) = 840f2c523ed6023eca8c04456f5d9748c44c685fdd2f9fa2ee458baafcd91c38 SIZE (rjeczalik-notify-v0.9.2_GH0.tar.gz) = 56851 -SHA256 (segmentio-go-prompt-f0d19b6901ad_GH0.tar.gz) = 7a3fc9d828d7540dc27d82099220d4a2ea152c790ecb64f9d644cd38af4cccea -SIZE (segmentio-go-prompt-f0d19b6901ad_GH0.tar.gz) = 1733 -SHA256 (tidwall-gjson-v1.2.1_GH0.tar.gz) = 451807207edbdd4f4a597d7d9397b68d74d5c41f9a1fdab4a37993d978cefe4c -SIZE (tidwall-gjson-v1.2.1_GH0.tar.gz) = 43134 -SHA256 (tidwall-match-v1.0.1_GH0.tar.gz) = e20457b7f9fbcdc60c239b4651e70b9a8caded8e5e09cd285078ba7f9c4e639f -SIZE (tidwall-match-v1.0.1_GH0.tar.gz) = 4367 -SHA256 (tidwall-pretty-v1.0.0_GH0.tar.gz) = 6c0288d56a8cd066977cfc98caa8a331c148a4cd98aae47a37819d4709bdf420 -SIZE (tidwall-pretty-v1.0.0_GH0.tar.gz) = 8824 +SHA256 (secure-io-sio-go-v0.3.0_GH0.tar.gz) = 36effba2f27efdcd190725417e094fda16b89199c64ad8947020c1215de19d37 +SIZE (secure-io-sio-go-v0.3.0_GH0.tar.gz) = 21831 +SHA256 (shirou-gopsutil-v2.18.12_GH0.tar.gz) = 70e291291c1e2363c1b8d7656c394cbfc8a67c93eb95a861abdcd7644562afba +SIZE (shirou-gopsutil-v2.18.12_GH0.tar.gz) = 117507 diff --git www/minio-client/files/patch-pkg_disk_stat__freebsd.go www/minio-client/files/patch-pkg_disk_stat__freebsd.go new file mode 100644 index 000000000000..48144680218e --- /dev/null +++ www/minio-client/files/patch-pkg_disk_stat__freebsd.go @@ -0,0 +1,71 @@ +--- pkg/disk/stat_freebsd.go.orig 2020-01-06 18:29:51 UTC ++++ pkg/disk/stat_freebsd.go +@@ -0,0 +1,68 @@ ++// +build freebsd ++ ++/* ++ * MinIO Cloud Storage, (C) 2019 MinIO, Inc. ++ * ++ * Licensed under the Apache License, Version 2.0 (the "License"); ++ * you may not use this file except in compliance with the License. ++ * You may obtain a copy of the License at ++ * ++ * http://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. ++ */ ++ ++package disk ++ ++import ( ++ "os/user" ++ "strconv" ++ "strings" ++ "syscall" ++) ++ ++// GetFileSystemAttrs return the file system attribute as string; containing mode, ++// uid, gid, uname, Gname, atime, mtime, ctime and md5 ++func GetFileSystemAttrs(file string) (string, error) { ++ ++ st := syscall.Stat_t{} ++ err := syscall.Stat(file, &st) ++ if err != nil { ++ return "", err ++ } ++ ++ var fileAttr strings.Builder ++ fileAttr.WriteString("atime:") ++ fileAttr.WriteString(strconv.Itoa(int(st.Atimespec.Sec))) ++ fileAttr.WriteString("/ctime:") ++ fileAttr.WriteString(strconv.Itoa(int(st.Ctimespec.Sec))) ++ fileAttr.WriteString("/gid:") ++ fileAttr.WriteString(strconv.Itoa(int(st.Gid))) ++ ++ fileAttr.WriteString("/gname:") ++ g, err := user.LookupGroupId(strconv.FormatUint(uint64(st.Gid), 10)) ++ if err != nil { ++ return "", err ++ } ++ fileAttr.WriteString(g.Name) ++ ++ fileAttr.WriteString("/mode:") ++ fileAttr.WriteString(strconv.Itoa(int(st.Mode))) ++ fileAttr.WriteString("/mtime:") ++ fileAttr.WriteString(strconv.Itoa(int(st.Mtimespec.Sec))) ++ fileAttr.WriteString("/uid:") ++ fileAttr.WriteString(strconv.Itoa(int(st.Uid))) ++ ++ fileAttr.WriteString("/uname:") ++ i, err := user.LookupId(strconv.FormatUint(uint64(st.Uid), 10)) ++ if err != nil { ++ return "", err ++ } ++ fileAttr.WriteString(i.Username) ++ ++ return fileAttr.String(), nil ++}