44 "fmt"
55 "os"
66
7- "github.com/NebulousLabs/go-skynet"
7+ "github.com/NebulousLabs/go-skynet/v2 "
88 "github.com/spf13/cobra"
99 "gitlab.com/NebulousLabs/errors"
1010)
@@ -89,17 +89,18 @@ func skynetcmd() {
8989 fmt .Printf ("%s\n \n " , binDescription )
9090
9191 // Get Default Portal
92- fmt .Printf ("Default Skynet Portal: %v\n " , skynet .DefaultPortalURL )
92+ fmt .Printf ("Default Skynet Portal: %v\n " , skynet .DefaultPortalURL () )
9393}
9494
9595// skynetaddskykey stores the given base-64 encoded skykey with the skykey
9696// manager.
9797func skynetaddskykeycmd (skykey string ) {
9898 // Get the addskykey options.
9999 opts := skynet .DefaultAddSkykeyOptions
100- opts .Options = getCommonOptions (opts .Options )
100+ client , commonOpts := initClientAndOptions ()
101+ opts .Options = commonOpts
101102
102- err := skynet .AddSkykey (skykey , opts )
103+ err := client .AddSkykey (skykey , opts )
103104 if err != nil {
104105 err = errors .AddContext (err , fmt .Sprintf ("AddSkykey Options: %+v\n " , opts ))
105106 die ("Unable to add skykey:" , err )
@@ -111,9 +112,10 @@ func skynetaddskykeycmd(skykey string) {
111112func skynetcreateskykeycmd (name , skykeyType string ) {
112113 // Get the createskykey options.
113114 opts := skynet .DefaultCreateSkykeyOptions
114- opts .Options = getCommonOptions (opts .Options )
115+ client , commonOpts := initClientAndOptions ()
116+ opts .Options = commonOpts
115117
116- skykey , err := skynet .CreateSkykey (name , skykeyType , opts )
118+ skykey , err := client .CreateSkykey (name , skykeyType , opts )
117119 if err != nil {
118120 err = errors .AddContext (err , fmt .Sprintf ("CreateSkykey Options: %+v\n " , opts ))
119121 die ("Unable to create skykey:" , err )
@@ -124,9 +126,10 @@ func skynetcreateskykeycmd(name, skykeyType string) {
124126func skynetgetskykeyidcmd (id string ) {
125127 // Get the getskykeyid options.
126128 opts := skynet .DefaultGetSkykeyOptions
127- opts .Options = getCommonOptions (opts .Options )
129+ client , commonOpts := initClientAndOptions ()
130+ opts .Options = commonOpts
128131
129- skykey , err := skynet .GetSkykeyByID (id , opts )
132+ skykey , err := client .GetSkykeyByID (id , opts )
130133 if err != nil {
131134 err = errors .AddContext (err , fmt .Sprintf ("GetSkykey Options: %+v\n " , opts ))
132135 die ("Unable to get skykey by id:" , err )
@@ -137,9 +140,10 @@ func skynetgetskykeyidcmd(id string) {
137140func skynetgetskykeynamecmd (name string ) {
138141 // Get the getskykeyname options.
139142 opts := skynet .DefaultGetSkykeyOptions
140- opts .Options = getCommonOptions (opts .Options )
143+ client , commonOpts := initClientAndOptions ()
144+ opts .Options = commonOpts
141145
142- skykey , err := skynet .GetSkykeyByName (name , opts )
146+ skykey , err := client .GetSkykeyByName (name , opts )
143147 if err != nil {
144148 err = errors .AddContext (err , fmt .Sprintf ("GetSkykey Options: %+v\n " , opts ))
145149 die ("Unable to get skykey by name:" , err )
@@ -151,9 +155,10 @@ func skynetgetskykeynamecmd(name string) {
151155func skynetgetskykeyscmd () {
152156 // Get the getskykeys options.
153157 opts := skynet .DefaultGetSkykeysOptions
154- opts .Options = getCommonOptions (opts .Options )
158+ client , commonOpts := initClientAndOptions ()
159+ opts .Options = commonOpts
155160
156- skykeys , err := skynet .GetSkykeys (opts )
161+ skykeys , err := client .GetSkykeys (opts )
157162 if err != nil {
158163 err = errors .AddContext (err , fmt .Sprintf ("GetSkykeys Options: %+v\n " , opts ))
159164 die ("Unable to get skykeys:" , err )
@@ -174,7 +179,8 @@ func skynetdownloadcmd(cmd *cobra.Command, args []string) {
174179
175180 // Get the download options.
176181 opts := skynet .DefaultDownloadOptions
177- opts .Options = getCommonOptions (opts .Options )
182+ client , commonOpts := initClientAndOptions ()
183+ opts .Options = commonOpts
178184 if downloadSkykeyName != "" {
179185 opts .SkykeyName = downloadSkykeyName
180186 }
@@ -183,7 +189,7 @@ func skynetdownloadcmd(cmd *cobra.Command, args []string) {
183189 }
184190
185191 // Download Skylink
186- err := skynet .DownloadFile (filename , skylink , opts )
192+ err := client .DownloadFile (filename , skylink , opts )
187193 if err != nil {
188194 err = errors .AddContext (err , fmt .Sprintf ("Download Options: %+v\n " , opts ))
189195 die ("Unable to download skylink:" , err )
@@ -196,7 +202,8 @@ func skynetdownloadcmd(cmd *cobra.Command, args []string) {
196202func skynetuploadcmd (sourcePath string ) {
197203 // Get the upload options.
198204 opts := skynet .DefaultUploadOptions
199- opts .Options = getCommonOptions (opts .Options )
205+ client , commonOpts := initClientAndOptions ()
206+ opts .Options = commonOpts
200207 if portalFileFieldName != "" {
201208 opts .PortalFileFieldName = portalFileFieldName
202209 }
@@ -216,7 +223,7 @@ func skynetuploadcmd(sourcePath string) {
216223 opts .SkykeyID = uploadSkykeyID
217224 }
218225
219- skylink , uploadType , err := upload (sourcePath , opts )
226+ skylink , uploadType , err := upload (sourcePath , client , opts )
220227 if err != nil {
221228 err = errors .AddContext (err , fmt .Sprintf ("Upload Options: %+v\n " , opts ))
222229 die (fmt .Sprintf ("Unable to upload %v: %v\n " , uploadType , err ))
@@ -226,7 +233,7 @@ func skynetuploadcmd(sourcePath string) {
226233}
227234
228235// upload uploads the given path.
229- func upload (sourcePath string , opts skynet.UploadOptions ) (skylink string , uploadType string , err error ) {
236+ func upload (sourcePath string , client skynet. SkynetClient , opts skynet.UploadOptions ) (skylink string , uploadType string , err error ) {
230237 // Open the source file.
231238 file , err := os .Open (sourcePath )
232239 if err != nil {
@@ -242,27 +249,26 @@ func upload(sourcePath string, opts skynet.UploadOptions) (skylink string, uploa
242249
243250 // Upload File
244251 if ! fi .IsDir () {
245- skylink , err = skynet .UploadFile (sourcePath , opts )
252+ skylink , err = client .UploadFile (sourcePath , opts )
246253 if err != nil {
247254 return "" , "file" , errors .AddContext (err , "Unable to upload file" )
248255 }
249256 return skylink , "file" , nil
250257 }
251258
252259 // Upload directory
253- skylink , err = skynet .UploadDirectory (sourcePath , opts )
260+ skylink , err = client .UploadDirectory (sourcePath , opts )
254261 if err != nil {
255262 return "" , "directory" , errors .AddContext (err , "Unable to upload directory" )
256263 }
257264 return skylink , "directory" , nil
258265}
259266
260- // getCommonOptions gets options from the persistent root flags that are common
261- // to all commands.
262- func getCommonOptions (opts skynet.Options ) skynet.Options {
263- if skynetPortal != "" {
264- opts .PortalURL = skynetPortal
265- }
267+ // initClientAndOptions initializes a client and common options from the
268+ // persistent root flags that are common to all commands. Any available options
269+ // in `opts` will be used if the option is not overridden with a root flag.
270+ func initClientAndOptions () (skynet.SkynetClient , skynet.Options ) {
271+ opts := skynet.Options {}
266272 if endpointPath != "" {
267273 opts .EndpointPath = endpointPath
268274 }
@@ -272,5 +278,8 @@ func getCommonOptions(opts skynet.Options) skynet.Options {
272278 if customUserAgent != "" {
273279 opts .CustomUserAgent = customUserAgent
274280 }
275- return opts
281+ // Create a client with specified portal (or "" if not specified) default
282+ // options. Custom options will be passed into the API call itself.
283+ client := skynet .NewCustom (skynetPortal , skynet.Options {})
284+ return client , opts
276285}
0 commit comments