forked from Elara6331/itd
		
	Add resource loading to itctl
This commit is contained in:
		| @@ -1,11 +1,11 @@ | |||||||
| package main | package main | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"time" |  | ||||||
| 	"context" | 	"context" | ||||||
| 	"os" | 	"os" | ||||||
| 	"os/signal" | 	"os/signal" | ||||||
| 	"syscall" | 	"syscall" | ||||||
|  | 	"time" | ||||||
|  |  | ||||||
| 	"github.com/rs/zerolog" | 	"github.com/rs/zerolog" | ||||||
| 	"github.com/rs/zerolog/log" | 	"github.com/rs/zerolog/log" | ||||||
| @@ -51,6 +51,19 @@ func main() { | |||||||
| 				Usage:     "Display help screen for a command", | 				Usage:     "Display help screen for a command", | ||||||
| 				Action:    helpCmd, | 				Action:    helpCmd, | ||||||
| 			}, | 			}, | ||||||
|  | 			{ | ||||||
|  | 				Name:    "resources", | ||||||
|  | 				Aliases: []string{"res"}, | ||||||
|  | 				Usage:   "Handle InfiniTime resource loading", | ||||||
|  | 				Subcommands: []*cli.Command{ | ||||||
|  | 					{ | ||||||
|  | 						Name:      "load", | ||||||
|  | 						ArgsUsage: "<path>", | ||||||
|  | 						Usage:     "Load an InifiniTime resources package", | ||||||
|  | 						Action:    resourcesLoad, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
| 			{ | 			{ | ||||||
| 				Name:    "filesystem", | 				Name:    "filesystem", | ||||||
| 				Aliases: []string{"fs"}, | 				Aliases: []string{"fs"}, | ||||||
|   | |||||||
							
								
								
									
										48
									
								
								cmd/itctl/resources.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								cmd/itctl/resources.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | |||||||
|  | package main | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"path/filepath" | ||||||
|  |  | ||||||
|  | 	"github.com/cheggaaa/pb/v3" | ||||||
|  | 	"github.com/urfave/cli/v2" | ||||||
|  | 	"go.arsenm.dev/infinitime" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | func resourcesLoad(c *cli.Context) error { | ||||||
|  | 	if c.Args().Len() == 0 { | ||||||
|  | 		return cli.Exit("Command load requires one argument.", 1) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// Create progress bar templates | ||||||
|  | 	rmTmpl := `Removing {{string . "filename"}}` | ||||||
|  | 	upTmpl := `Uploading {{string . "filename"}} {{counters . }} B {{bar . "|" "-" (cycle .) " " "|"}} {{percent . }} {{rtime . "%s"}}` | ||||||
|  | 	// Start full bar at 0 total | ||||||
|  | 	bar := pb.ProgressBarTemplate(rmTmpl).Start(0) | ||||||
|  |  | ||||||
|  | 	path, err := filepath.Abs(c.Args().Get(0)) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	progCh, err := client.LoadResources(c.Context, path) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	for evt := range progCh { | ||||||
|  | 		if evt.Operation == infinitime.ResourceOperationRemoveObsolete { | ||||||
|  | 			bar.SetTemplateString(rmTmpl) | ||||||
|  | 			bar.Set("filename", evt.Name) | ||||||
|  | 		} else { | ||||||
|  | 			bar.SetTemplateString(upTmpl) | ||||||
|  | 			bar.Set("filename", evt.Name) | ||||||
|  |  | ||||||
|  | 			bar.SetTotal(evt.Total) | ||||||
|  | 			bar.SetCurrent(evt.Sent) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	bar.Finish() | ||||||
|  |  | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
							
								
								
									
										2
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
									
									
									
									
								
							| @@ -38,7 +38,7 @@ require ( | |||||||
| 	github.com/gopherjs/gopherjs v1.17.2 // indirect | 	github.com/gopherjs/gopherjs v1.17.2 // indirect | ||||||
| 	github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect | 	github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect | ||||||
| 	github.com/mattn/go-colorable v0.1.8 // indirect | 	github.com/mattn/go-colorable v0.1.8 // indirect | ||||||
| 	github.com/mattn/go-runewidth v0.0.12 // indirect | 	github.com/mattn/go-runewidth v0.0.13 // indirect | ||||||
| 	github.com/mitchellh/copystructure v1.2.0 // indirect | 	github.com/mitchellh/copystructure v1.2.0 // indirect | ||||||
| 	github.com/mitchellh/mapstructure v1.5.0 // indirect | 	github.com/mitchellh/mapstructure v1.5.0 // indirect | ||||||
| 	github.com/mitchellh/reflectwalk v1.0.2 // indirect | 	github.com/mitchellh/reflectwalk v1.0.2 // indirect | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								go.sum
									
									
									
									
									
								
							| @@ -270,8 +270,9 @@ github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx | |||||||
| github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= | github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= | ||||||
| github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= | github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= | ||||||
| github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= | github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= | ||||||
| github.com/mattn/go-runewidth v0.0.12 h1:Y41i/hVW3Pgwr8gV+J23B9YEY0zxjptBuCWEaxmAOow= |  | ||||||
| github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= | github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= | ||||||
|  | github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= | ||||||
|  | github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= | ||||||
| github.com/mattn/go-sqlite3 v1.14.12 h1:TJ1bhYJPV44phC+IMu1u2K/i5RriLTPe+yc68XDJ1Z0= | github.com/mattn/go-sqlite3 v1.14.12 h1:TJ1bhYJPV44phC+IMu1u2K/i5RriLTPe+yc68XDJ1Z0= | ||||||
| github.com/mattn/go-sqlite3 v1.14.12/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= | github.com/mattn/go-sqlite3 v1.14.12/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= | ||||||
| github.com/metal3d/fyne-x v0.0.0-20220508095732-177117e583fb h1:+fP6ENsbd+BUOmD/kSjNtrOmi2vgJ/JfWDSWjTKmTVY= | github.com/metal3d/fyne-x v0.0.0-20220508095732-177117e583fb h1:+fP6ENsbd+BUOmD/kSjNtrOmi2vgJ/JfWDSWjTKmTVY= | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user