refactor: convert inbox command to default alias

This commit is contained in:
2026-03-29 19:56:15 +02:00
parent 535626d198
commit 6ff013dd2a
4 changed files with 18 additions and 37 deletions

View File

@@ -112,10 +112,6 @@ Open node content in `$EDITOR`.
Delete a node. Prompts for confirmation unless `--force`. Delete a node. Prompts for confirmation unless `--force`.
### `ax inbox`
Show issues in current user's inbox (from @mentions).
### `ax alias [name] [command] [flags]` ### `ax alias [name] [command] [flags]`
Manage aliases. Manage aliases.
@@ -125,7 +121,7 @@ ax alias # list all aliases
ax alias mywork "list --tag work" # create alias ax alias mywork "list --tag work" # create alias
ax alias mywork # show alias command ax alias mywork # show alias command
ax alias mywork "list --tag work2" # update alias ax alias mywork "list --tag work2" # update alias
ax alias delete mywork # delete alias ax alias del mywork # delete alias
``` ```
**Default aliases:** **Default aliases:**
@@ -134,7 +130,8 @@ ax alias delete mywork # delete alias
|-------|---------|-------------| |-------|---------|-------------|
| `mine` | `list --assignee $me --tag _status::open` | Show open tasks assigned to you | | `mine` | `list --assignee $me --tag _status::open` | Show open tasks assigned to you |
| `due` | `list --tag _status::open --tag _due` | Show open tasks with due dates | | `due` | `list --tag _status::open --tag _due` | Show open tasks with due dates |
| `new` | `create $@` | Create a new task | | `new` | `add $@` | Create a new task |
| `inbox` | `list --mention $me` | Show your inbox |
**Alias argument expansion:** **Alias argument expansion:**

View File

@@ -1,30 +0,0 @@
package cmd
import (
"axolotl/db"
"axolotl/output"
"axolotl/service"
"fmt"
"os"
"github.com/spf13/cobra"
)
var inboxCmd = &cobra.Command{
Use: "inbox", Short: "Show your inbox",
Run: func(cmd *cobra.Command, args []string) {
d, err := db.GetDB()
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
svc := service.NewSQLiteNodeService(d.DB, cfg.GetUser())
if nodes, err := svc.List(service.WithMentions(cfg.GetUser())); err == nil {
output.PrintNodes(cmd.OutOrStdout(), nodes, jsonFlag)
}
},
}
func init() {
rootCmd.AddCommand(inboxCmd)
}

View File

@@ -12,6 +12,7 @@ import (
var lAssignee string var lAssignee string
var lTags []string var lTags []string
var lMention string
var listCmd = &cobra.Command{ var listCmd = &cobra.Command{
Use: "list", Short: "List nodes", Use: "list", Short: "List nodes",
@@ -22,7 +23,18 @@ var listCmd = &cobra.Command{
return return
} }
svc := service.NewSQLiteNodeService(d.DB, cfg.GetUser()) svc := service.NewSQLiteNodeService(d.DB, cfg.GetUser())
if nodes, err := svc.List(service.WithTags(lTags...), service.WithAssignee(lAssignee)); err == nil { opts := []service.ListOption{}
if len(lTags) > 0 {
opts = append(opts, service.WithTags(lTags...))
}
if lAssignee != "" {
opts = append(opts, service.WithAssignee(lAssignee))
}
if lMention != "" {
opts = append(opts, service.WithMentions(lMention))
}
if nodes, err := svc.List(opts...); err == nil {
output.PrintNodes(cmd.OutOrStdout(), nodes, jsonFlag) output.PrintNodes(cmd.OutOrStdout(), nodes, jsonFlag)
} else { } else {
fmt.Fprintf(os.Stderr, "err: %v\n", err) fmt.Fprintf(os.Stderr, "err: %v\n", err)
@@ -36,4 +48,5 @@ func init() {
f := listCmd.Flags() f := listCmd.Flags()
f.StringVar(&lAssignee, "assignee", "", "") f.StringVar(&lAssignee, "assignee", "", "")
f.StringArrayVar(&lTags, "tag", nil, "") f.StringArrayVar(&lTags, "tag", nil, "")
f.StringVar(&lMention, "mention", "", "")
} }

View File

@@ -21,6 +21,7 @@ var defaultAliases = []*Alias{
{Name: "mine", Command: "list --assignee $me --tag _status::open", Description: "Show open tasks assigned to you"}, {Name: "mine", Command: "list --assignee $me --tag _status::open", Description: "Show open tasks assigned to you"},
{Name: "due", Command: "list --tag _status::open --tag _due", Description: "Show open tasks with due dates"}, {Name: "due", Command: "list --tag _status::open --tag _due", Description: "Show open tasks with due dates"},
{Name: "new", Command: "add $@", Description: "Create a new task"}, {Name: "new", Command: "add $@", Description: "Create a new task"},
{Name: "inbox", Command: "list --mention $me", Description: "Show your inbox"},
} }
func LoadConfig() (Config, error) { func LoadConfig() (Config, error) {