53 lines
1.7 KiB
Go
53 lines
1.7 KiB
Go
package main
|
|
|
|
import (
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
|
|
func main() {
|
|
var isMovie bool
|
|
var isSeries bool
|
|
var isEpisode bool
|
|
cmdLog := &cobra.Command{
|
|
Use: "add",
|
|
Short: "log media",
|
|
Long: `kind of like a movie diary with required
|
|
information about the watched movies`,
|
|
Args: cobra.NoArgs,
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
LOGMedia(isMovie, isSeries, isEpisode)
|
|
},
|
|
}
|
|
|
|
cmdList := &cobra.Command{
|
|
Use: "list",
|
|
Short: "list media",
|
|
Long: `kind of like a movie diary with required
|
|
information about the watched movies`,
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
Listmovies(isMovie, isSeries, isEpisode)
|
|
},
|
|
}
|
|
|
|
cmdLog.Flags().BoolVarP(&isMovie, "movie", "m", false, "log a movie")
|
|
cmdLog.Flags().BoolVarP(&isSeries, "series", "t", false, "log a tv show")
|
|
cmdLog.Flags().BoolVarP(&isEpisode, "episode", "e", false, "log an epiosdes")
|
|
cmdLog.MarkFlagsOneRequired("movie", "series", "episode")
|
|
cmdLog.MarkFlagsMutuallyExclusive("movie", "series")
|
|
|
|
cmdList.Flags().BoolVarP(&isMovie, "movie", "m", false, "list logged movies")
|
|
cmdList.Flags().BoolVarP(&isSeries, "series", "t", false, "list logged tv shows")
|
|
cmdList.Flags().BoolVarP(&isEpisode, "episodes", "e", false, "list logged episodes")
|
|
cmdList.MarkFlagsOneRequired("movie", "series", "episodes")
|
|
cmdList.MarkFlagsMutuallyExclusive("movie", "series")
|
|
|
|
rootCmd := &cobra.Command{
|
|
Use: "boxd",
|
|
Short: "keep track of media within the comfort of the command line",
|
|
Long: "boxd allows you to log movies, tv shows and episodes that you watched. boxd can also display a nice looking diary about your media",
|
|
}
|
|
rootCmd.AddCommand(cmdLog)
|
|
rootCmd.AddCommand(cmdList)
|
|
rootCmd.Execute()
|
|
}
|