Skip to content

Commit 949ae8c

Browse files
committed
refactor registrar cli
1 parent 9e42402 commit 949ae8c

File tree

12 files changed

+146
-55
lines changed

12 files changed

+146
-55
lines changed

go.work.sum

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,83 @@
1+
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
12
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
23
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
34
github.com/btcsuite/btcd v0.22.0-beta/go.mod h1:9n5ntfhhHQBIhUvlhDvD3Qg6fRUj4jkN0VB8L8svzOA=
5+
github.com/bytedance/sonic v1.11.6/go.mod h1:LysEHSvpvDySVdC2f87zGWf6CIKJcAvqab1ZaiQtds4=
6+
github.com/bytedance/sonic/loader v0.2.0/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=
47
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk=
58
github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d/go.mod h1:8EPpVsBuRksnlj1mLy4AWzRNQYxauNi62uWcE3to6eA=
69
github.com/chenzhuoyu/iasm v0.9.0/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog=
710
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
11+
github.com/gabriel-vasile/mimetype v1.4.7 h1:SKFKl7kD0RiPdbht0s7hFtjl489WcQ1VyPW8ZzUMYCA=
12+
github.com/gabriel-vasile/mimetype v1.4.7/go.mod h1:GDlAgAyIRT27BhFl53XNAFtfjzOkLaF35JdEG0P7LtU=
13+
github.com/gin-contrib/cors v1.7.3 h1:hV+a5xp8hwJoTw7OY+a70FsL8JkVVFTXw9EcfrYUdns=
14+
github.com/gin-contrib/cors v1.7.3/go.mod h1:M3bcKZhxzsvI+rlRSkkxHyljJt1ESd93COUvemZ79j4=
15+
github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU=
16+
github.com/gin-gonic/gin v1.10.0/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y=
17+
github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns=
18+
github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I=
19+
github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM=
20+
github.com/go-playground/validator/v10 v10.23.0 h1:/PwmTwZhS0dPkav3cdK9kV1FsAmrL8sThn8IHr/sO+o=
21+
github.com/go-playground/validator/v10 v10.23.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM=
22+
github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
823
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
24+
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
25+
github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
26+
github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
27+
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
28+
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
29+
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
930
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
1031
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
1132
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
33+
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
34+
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
35+
github.com/swaggo/swag v1.16.4 h1:clWJtd9LStiG3VeijiCfOVODP6VpHtKdQy9ELFG3s1A=
36+
github.com/swaggo/swag v1.16.4/go.mod h1:VBsHJRsDvfYvqoiMKnsdwhNV9LEMHgEDZcyVYX0sxPg=
1237
github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI=
1338
github.com/vedhavyas/go-subkey v1.0.3 h1:iKR33BB/akKmcR2PMlXPBeeODjWLM90EL98OrOGs8CA=
1439
github.com/vedhavyas/go-subkey v1.0.3/go.mod h1:CloUaFQSSTdWnINfBRFjVMkWXZANW+nd8+TI5jYcl6Y=
40+
golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
41+
golang.org/x/arch v0.8.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys=
42+
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
1543
golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw=
44+
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
45+
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
46+
golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
47+
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
48+
golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
49+
golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
50+
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
51+
golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
52+
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
53+
golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE=
54+
golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM=
55+
golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
56+
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
57+
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
58+
golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
59+
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
60+
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
61+
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
62+
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
63+
golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
1664
golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457/go.mod h1:pRgIJT+bRLFKnoM1ldnzKoxTIn14Yxz928LQRYYgIN0=
1765
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
1866
golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0=
1967
golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
68+
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
69+
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
70+
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
71+
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
72+
golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s=
73+
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
74+
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
75+
golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA=
76+
golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c=
77+
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
78+
google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
79+
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
80+
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
81+
gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
2082
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
2183
sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,49 @@
11
# New Farm Tool
22

33
## Overview
4+
45
This tool allows users to create a farm account on a specified network.
56

67
## Installation
8+
79
1. Clone the repository:
10+
811
```sh
912
git clone https://github.com/threefoldtech/tfgrid4-sdk-go
1013
```
14+
1115
2. Navigate to the project directory:
16+
1217
```sh
1318
cd tfgrid4-sdk-go/node-registrar/tools/farm
1419
```
20+
1521
3. Build the application:
22+
1623
```sh
1724
go build -o new-farm main.go
1825
```
1926

2027
## Usage
28+
2129
```sh
22-
./new-farm -seed <seed> -network <network> -farm_name <farm_name>
30+
./new-farm -seed <seed> -network <network> -farm-name <farm-name>
2331
```
2432

2533
### Parameters
34+
2635
- `-seed` (required): A hexadecimal string used as a private key seed.
2736
- `-network` (required): Specifies the network (`dev`, `qa`, `test`, `main`).
28-
- `-farm_name` (required): The name of the farm to create.
37+
- `-farm-name` (required): The name of the farm to create.
2938

3039
### Example Usage
40+
3141
```sh
32-
./new-farm -seed aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899 -network dev -farm_name MyFarm
42+
./new-farm -seed aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899 -network dev -farm-name MyFarm
3343
```
44+
3445
The `FarmID` (e.g., `11`) is returned upon successful farm creation.
3546

3647
## Next Step
3748

38-
Once this is done, you can create a V4 bootstrap image using the V4 Zero-OS Boot Generator: https://v4.bootstrap.grid.tf/.
49+
Once this is done, you can create a V4 bootstrap image using the V4 Zero-OS Boot Generator: <https://v4.bootstrap.grid.tf/>.

node-registrar/tools/farm/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ func main() {
2929

3030
flag.StringVar(&seed, "seed", "", "seed")
3131
flag.StringVar(&network, "network", "", "network (dev, qa, test, main)")
32-
flag.StringVar(&name, "farm_name", "", "farm name")
32+
flag.StringVar(&name, "farm-name", "", "farm name")
3333
flag.Parse()
3434

3535
u, ok := urls[network]

registrar-cli/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ Account command represents events on account on Threefold grid4
6161
➜ ./registrar-cli account get --network dev --twin-id 33
6262
5:00PM INF account={"public_key":"w5TYTeB/rCskd1iNrOKaFlpGn+Cp28gFZobTNABUv50=","relays":[],"rmb_enc_key":"","twin_id":33}
6363
64-
➜ ./registrar-cli account get --network dev --public-key <public-key>
64+
➜ ./registrar-cli account get --network dev --public-key <public-key>
6565
5:01PM INF account={"public_key":"w5TYTeB/rCskd1iNrOKaFlpGn+Cp28gFZobTNABUv50=","relays":[],"rmb_enc_key":"","twin_id":33}
6666
```
6767

@@ -92,7 +92,7 @@ Farm command represents events on farms on Threefold grid4
9292

9393
**Flags**:
9494

95-
- `--farm_name` (required): The name of the farm to create.
95+
- `--farm-name` (required): The name of the farm to create.
9696
- `--network` (required): Specifies the network (`dev`, `qa`, `test`, `main`).
9797
- `--mnemonic` (required): Account mnemonic.
9898
- `--dedicated` (optional default: false): is the farm dedicated.
@@ -125,7 +125,7 @@ Farm command represents events on farms on Threefold grid4
125125
- `--network` (required): Specifies the network (`dev`, `qa`, `test`, `main`).
126126
- `--mnemonic` (required): Account mnemonic.
127127
- `--farm-id` (optional): id of the farm needed to be loaded.
128-
- `--farm_name` (optional): The new name of the farm.
128+
- `--farm-name` (optional): The new name of the farm.
129129
- `--dedicated` (optional): update the farm to dedicated.
130130

131131
**Example Usage**:

registrar-cli/cmd/account_create.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
package cmd
33

44
import (
5+
"github.com/pkg/errors"
56
"github.com/rs/zerolog/log"
67
"github.com/spf13/cobra"
78
"github.com/threefoldtech/tfgrid4-sdk-go/registrar-cli/internal/cmd"
@@ -14,12 +15,12 @@ var accountCreateCmd = &cobra.Command{
1415
RunE: func(cobraCmd *cobra.Command, args []string) error {
1516
mnemonic, err := cobraCmd.Flags().GetString("mnemonic")
1617
if err != nil {
17-
return err
18+
return errors.Wrap(err, "failed to get mnemonic flag")
1819
}
1920

2021
network, err := cobraCmd.Flags().GetString("network")
2122
if err != nil {
22-
return err
23+
return errors.Wrap(err, "failed to get network flag")
2324
}
2425

2526
relays, err := cobraCmd.Flags().GetStringArray("relays")
@@ -34,12 +35,10 @@ var accountCreateCmd = &cobra.Command{
3435

3536
account, mnemonic, err := cmd.CreateAccount(network, relays, rmbEncKey, mnemonic)
3637
if err != nil {
37-
return err
38+
return errors.Wrap(err, "failed to create account")
3839
}
3940
log.Info().Str("mnemonic", mnemonic).Msg("new account is created with mnemonic")
40-
4141
log.Info().Uint64("twinID", account.TwinID).Msg("account is created successfully")
42-
4342
return nil
4443
},
4544
}

registrar-cli/cmd/account_get.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
package cmd
33

44
import (
5+
"github.com/pkg/errors"
56
"github.com/rs/zerolog/log"
67
"github.com/spf13/cobra"
78
"github.com/threefoldtech/tfgrid4-sdk-go/registrar-cli/internal/cmd"
@@ -14,26 +15,25 @@ var accountGetCmd = &cobra.Command{
1415
RunE: func(cobraCmd *cobra.Command, args []string) error {
1516
network, err := cobraCmd.Flags().GetString("network")
1617
if err != nil {
17-
return err
18+
return errors.Wrap(err, "failed to get network flag")
1819
}
1920

2021
twinID, err := cobraCmd.Flags().GetUint64("twin-id")
2122
if err != nil {
22-
return err
23+
return errors.Wrap(err, "failed to get twin-id flag")
2324
}
2425

2526
pk, err := cobraCmd.Flags().GetString("public-key")
2627
if err != nil {
27-
return err
28+
return errors.Wrap(err, "failed to get public-key flag")
2829
}
2930

3031
account, err := cmd.GetAccount(network, twinID, pk)
3132
if err != nil {
32-
return err
33+
return errors.Wrap(err, "failed to get account")
3334
}
3435

3536
log.Info().Any("account", account).Send()
36-
3737
return nil
3838
},
3939
}

registrar-cli/cmd/farm_create.go

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
package cmd
33

44
import (
5+
"github.com/pkg/errors"
56
"github.com/rs/zerolog/log"
67
"github.com/spf13/cobra"
78
"github.com/threefoldtech/tfgrid4-sdk-go/registrar-cli/internal/cmd"
@@ -14,36 +15,48 @@ var farmCreateCmd = &cobra.Command{
1415
RunE: func(cobraCmd *cobra.Command, args []string) error {
1516
mnemonic, err := cobraCmd.Flags().GetString("mnemonic")
1617
if err != nil {
17-
return err
18+
return errors.Wrap(err, "failed to get mnemonic flag")
1819
}
1920

2021
network, err := cobraCmd.Flags().GetString("network")
2122
if err != nil {
22-
return err
23+
return errors.Wrap(err, "failed to get network flag")
2324
}
2425

2526
farmName, err := cobraCmd.Flags().GetString("farm-name")
2627
if err != nil {
27-
return err
28+
return errors.Wrap(err, "failed to get farm-name flag")
2829
}
2930

30-
stellarAddrss, err := cobraCmd.Flags().GetString("stellar-address")
31+
stellarAddress, err := cobraCmd.Flags().GetString("stellar-address")
3132
if err != nil {
32-
return err
33+
return errors.Wrap(err, "failed to get stellar-address flag")
3334
}
3435

3536
dedicated, err := cobraCmd.Flags().GetBool("dedicated")
3637
if err != nil {
37-
return err
38+
return errors.Wrap(err, "failed to get dedicated flag")
3839
}
3940

40-
farmID, err := cmd.CreateFarm(mnemonic, network, farmName, stellarAddrss, dedicated)
41+
// Validate required inputs
42+
if farmName == "" {
43+
return errors.New("farm name is required (use --farm-name flag)")
44+
}
45+
46+
if network == "" {
47+
return errors.New("network is required (use --network flag)")
48+
}
49+
50+
if mnemonic == "" {
51+
return errors.New("mnemonic is required (use --mnemonic flag)")
52+
}
53+
54+
farmID, err := cmd.CreateFarm(mnemonic, network, farmName, stellarAddress, dedicated)
4155
if err != nil {
42-
return err
56+
return errors.Wrap(err, "failed to create farm")
4357
}
4458

4559
log.Info().Uint64("farmID", farmID).Msg("farm is created successfully")
46-
4760
return nil
4861
},
4962
}

registrar-cli/cmd/farm_get.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
package cmd
33

44
import (
5-
"fmt"
6-
5+
"github.com/pkg/errors"
76
"github.com/rs/zerolog/log"
87
"github.com/spf13/cobra"
98
"github.com/threefoldtech/tfgrid4-sdk-go/registrar-cli/internal/cmd"
@@ -16,21 +15,21 @@ var farmGetCmd = &cobra.Command{
1615
RunE: func(cobraCmd *cobra.Command, args []string) error {
1716
network, err := cobraCmd.Flags().GetString("network")
1817
if err != nil {
19-
return err
18+
return errors.Wrap(err, "failed to get network flag")
2019
}
2120

2221
farmID, err := cobraCmd.Flags().GetUint64("farm-id")
2322
if err != nil {
24-
return err
23+
return errors.Wrap(err, "failed to get farm-id flag")
2524
}
2625

2726
if farmID == 0 {
28-
return fmt.Errorf("you need to provide farm id to load a farm")
27+
return errors.New("farm id is required (use --farm-id flag with a non-zero value)")
2928
}
3029

3130
farm, err := cmd.GetFarm(network, farmID)
3231
if err != nil {
33-
return err
32+
return errors.Wrap(err, "failed to get farm")
3433
}
3534

3635
log.Info().Any("farm", farm).Send()

0 commit comments

Comments
 (0)