func Listen(datadir, binding string, loglevel log.Level) error { var err error dataStore, err = helper.DefaultStore(datadir) if err != nil { return errgo.Notef(err, "can not get data store") } router := httprouter.New() // Router handler router.MethodNotAllowed = httphelper.HandlerLoggerHTTP(httphelper.PageRouterMethodNotAllowed) router.NotFound = httphelper.HandlerLoggerHTTP(httphelper.PageRouterNotFound) // Root and Favicon router.GET("/", httphelper.HandlerLoggerRouter(pageRoot)) router.GET("/favicon.ico", httphelper.HandlerLoggerRouter(pageFavicon)) // Show router.GET("/show/:type/", httphelper.HandlerLoggerRouter(pageShow)) router.GET("/show/:type/:project", httphelper.HandlerLoggerRouter(pageShow)) log.Info("Listening on ", binding) err = http.ListenAndServe(binding, router) if err != nil { return errgo.Notef(err, "can not listen to binding") } return nil }
func runCmdShowProjects(cmd *cobra.Command, args []string) error { store, err := helper.DefaultStore(flagDataDir) if err != nil { return errgo.Notef(err, "can not get data store") } projects, err := helper.ProjectNamesFromArgs(store, args, flagShowArchive) if err != nil { return errgo.Notef(err, "can not get list of projects") } for _, project := range projects.List() { fmt.Println(project.Name) } return nil }
func runCmdShowDates(cmd *cobra.Command, args []string) error { store, err := helper.DefaultStore(flagDataDir) if err != nil { return errgo.Notef(err, "can not get data store") } projects, err := helper.ProjectNamesFromArgs(store, args, flagShowArchive) if err != nil { return errgo.Notef(err, "can not get list of projects") } err = store.PopulateProjects(&projects) if err != nil { return errgo.Notef(err, "can not populate projects with entries") } filter := make(map[string]struct{}) for _, project := range projects.List() { entries := project.Entries if len(entries) == 0 { continue } for _, entry := range entries { date := entry.GetTimeStamp().Format("2006-01-02") filter[date] = struct{}{} } } var dates []string for date := range filter { dates = append(dates, date) } sort.Strings(dates) for _, date := range dates { fmt.Println(date) } return nil }
func runCmdShowEntries(cmd *cobra.Command, args []string) error { store, err := helper.DefaultStore(flagDataDir) if err != nil { return errgo.Notef(err, "can not get data store") } projects, err := helper.ProjectNamesFromArgs(store, args, flagShowArchive) if err != nil { return errgo.Notef(err, "can not get list of projects") } err = store.PopulateProjects(&projects) if err != nil { return errgo.Notef(err, "can not populate projects with entries") } formatting.Projects(os.Stdout, "Entries", 0, &projects) return nil }