├── .gitignore ├── go.mod ├── go.sum └── main.go /.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/Phillip-England/pik 2 | 3 | go 1.23.3 4 | 5 | require github.com/Phillip-England/mood v0.0.5 6 | -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | github.com/Phillip-England/mood v0.0.5 h1:IUcm9OSqav6q+3y+AAV9ds6RQeR4v94DoTslTqYs4cU= 2 | github.com/Phillip-England/mood v0.0.5/go.mod h1:py37wX8i4ziEUTphSnNJ6j5PxCN/nXM1ZGlrcGO2xOc= 3 | -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "strings" 6 | 7 | "github.com/Phillip-England/mood" 8 | ) 9 | 10 | func main() { 11 | 12 | app := mood.New() 13 | 14 | app.SetDefault(func(app *mood.Mood) error { 15 | if len(app.Args) < 2 { 16 | return fmt.Errorf("run 'pik help' to get started") 17 | } 18 | args, err := NewPikArgsFromApp(app) 19 | if err != nil { 20 | return err 21 | } 22 | fmt.Println(args) 23 | return nil 24 | }) 25 | 26 | app.At("help", func(app *mood.Mood) error { 27 | fmt.Println(`📸 pik - convert heic photos to workable formats with ease 28 | 29 | usage: 30 | pik [FILE || DIR] [OUT_FILE || OUT_DIR] 31 | 32 | examples: 33 | pik ./photo.heic ./photo.jpg 34 | pik ./dir ./out 35 | 36 | ⭐ don't forget to give me a star at https://github.com/Phillip-England/pik`) 37 | return nil 38 | }) 39 | 40 | err := app.Run() 41 | if err != nil { 42 | fmt.Println(err.Error()) 43 | } 44 | 45 | } 46 | 47 | type PikArgs interface { 48 | Execute() error 49 | } 50 | 51 | func NewPikArgsFromApp(app *mood.Mood) (PikArgs, error) { 52 | inputSrc := app.Args[0].Value 53 | isFileInput := false 54 | if strings.Contains(inputSrc, "heic") { 55 | isFileInput = true 56 | } 57 | if isFileInput { 58 | fileArgs := NewFileArgs(app) 59 | return fileArgs, nil 60 | } 61 | fmt.Println("START WORKING HERE!") 62 | return nil, nil 63 | } 64 | 65 | type FileArgs struct { 66 | App *mood.Mood 67 | } 68 | 69 | func NewFileArgs(app *mood.Mood) FileArgs { 70 | return FileArgs{ 71 | App: app, 72 | } 73 | } 74 | 75 | func (args FileArgs) Execute() error { 76 | return nil 77 | } 78 | 79 | // type PikArgs struct { 80 | // App *mood.Mood 81 | // } 82 | 83 | // func NewPikArgs(app *mood.Mood) (PikArgs, error) { 84 | // if len(app.Args) < 2 { 85 | // return PikArgs{}, fmt.Errorf("run 'pik help' to get started") 86 | // } 87 | // inputSrc := app.Args[0].Value 88 | // // out := app.Args[1].Value 89 | 90 | // isFileInput := false 91 | // if strings.Contains(inputSrc, "heic") { 92 | // isFileInput = true 93 | // } 94 | 95 | // args := &PikArgs{ 96 | // App: app, 97 | // } 98 | // return *args, nil 99 | // } 100 | --------------------------------------------------------------------------------