Coder Social home page Coder Social logo

grit's People

Contributors

climech avatar herbygillot avatar strogiyotec avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

grit's Issues

Cannot build on Ubuntu 18.04

Hi,
I'm having problems building the binary on my pc.
I extracted the release to my scripts folder on /home/USERNAME/scripts/grit-0.2.0
After running make && sudo make install I get the following error message.

can't load package: package /home/USERNAME/go/grit-0.2.0/cmd/grit: import "/home/USERNAME/go/grit-0.2.0/cmd/grit": cannot import absolute path
Makefile:15: recipe for target 'grit' failed
make: *** [grit] Error 1

The System is Ubuntu 18.04.5 LTS.
gcc is 7.5.0
go is 1.10.4 linux/amd64

Thank you very much

Feature Request: Task weight and Gantt Rendering

Thank you for this tool - it is much needed in the space.

To aid in capacity planning, the ability to add weights to tasks would offer considerable utility.

With the addition of task weights, a gantt chart could be rendered from the graph structure.

This would also make for a beautiful terminal experience πŸ™‚

Question: Bullet Journaling Usecase

First of all thanks for putting time and effort into this, it looks really neat and has really narrow interface which I totally like.
I am also a big fan of bullet journaling, I don't know if you have heard of that technique - it is basically scheduling tasks on dates and moving them manually when you don't manage to complete them on the given date which in turn makes you reconsider if the task is really worth doing.

grit comes really close to resembling this workflow. However, one thing I am currently missing on the default view is a way for me to see if a node has been linked to another date/root.

Is that also something you had in mind when designing this or do you have other plans with this?

Visual example of what I mean.

>> grit
[ ] 2021-04-04 (1)
 └──[>] escalation (2) -> (2021-04-05, Textbox)* 
     β”œβ”€β”€[ ] placeholder (5)
     └──[ ] sent email (3)

* This could be any alias.

Moving nodes

I'm not sure I clearly see how to move a node/subgraph. I was expecting a grit move <node-id> [-p ]<parent-node-id> or if the node is to be a root node: grit move -r <node-id>.

Backup and cloud sync

Hi!

Thank you for the awesome tool!

I have two questions about the backup and cloud sync.

  1. Where can I find sqlite db file?
  2. What do you think about the cloud syncronization with rclone? If I will not modify database on the two place at the same time. Am I able to avoid any coherency problem?

Error building in osx 10.15.7

  • go version:

go version go1.15.5 darwin/amd64

  • gcc --version:

Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/c++/4.2.1
Apple clang version 12.0.0 (clang-1200.0.32.29)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

  • Install output:
    make && sudo make install
    go: downloading github.com/fatih/color v1.10.0
    go: downloading github.com/jawher/mow.cli v1.2.0
    go: downloading github.com/kirsle/configdir v0.0.0-20170128060238-e45d2f54772f
    go: downloading github.com/climech/naturalsort v0.1.0
    go: downloading github.com/mattn/go-sqlite3 v2.0.3+incompatible
    go: downloading github.com/mattn/go-colorable v0.1.8
    go: downloading github.com/mattn/go-isatty v0.0.12
    go: downloading golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae
    github.com/jawher/mow.cli/internal/flow
    golang.org/x/sys/unix
    github.com/kirsle/configdir
    github.com/climech/naturalsort
    github.com/jawher/mow.cli/internal/lexer
    github.com/jawher/mow.cli/internal/container
    github.com/jawher/mow.cli/internal/values
    github.com/jawher/mow.cli/internal/matcher
    github.com/jawher/mow.cli/internal/fsm
    github.com/jawher/mow.cli/internal/parser
    github.com/jawher/mow.cli
    github.com/mattn/go-isatty
    github.com/mattn/go-sqlite3
    github.com/mattn/go-colorable
    github.com/fatih/color
    github.com/climech/grit/multitree
    github.com/climech/grit/db
    github.com/climech/grit/app
    github.com/climech/grit/cmd/grit
    Password:
    install: illegal option -- D
    usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
    [-o owner] file1 file2
    install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
    [-o owner] file1 ... fileN directory
    install -d [-v] [-g group] [-m mode] [-o owner] directory ...
    make: *** [install] Error 64

tree --progress: Feature to save space from children of checked nodes

Assuming the tree:

$ grit tree 2020-11-11
[~] 2020-11-10 (149)
 └──[~] Work on the algebra textbook (150)
     β”œβ”€β”€[~] Solve exercises from ch. 1 (151)
     β”‚   β”œΒ·Β·[x] Solve ex. 4 (50)
     β”‚   β”œΒ·Β·[x] Solve ex. 5 (51)
     β”‚   β”œΒ·Β·[x] Solve ex. 6 (52)
     β”‚   β”œΒ·Β·[ ] Solve ex. 7 (53)
     β”‚   β””Β·Β·[x] Solve ex. 8 (54)
     β”‚       β”œΒ·Β·[x] Solve ex. 8a (55)
     β”‚       β””Β·Β·[x] Solve ex. 8b (56)
     └──[x] Work on ch. 2 (152)
         β”œΒ·Β·[x] Read the chapter (76)
         β”œΒ·Β·[x] Solve ex. 1 (78)
         β”œΒ·Β·[x] Solve ex. 2 (79)
         β””Β·Β·[x] Solve ex. 3 (80)

it would be nice to have the more concise tree --progress:

$ grit tree --progress 2020-11-11
[~] 2020-11-10 (149)
 └──[~] Work on the algebra textbook (150)
     β”œβ”€β”€[~] Solve exercises from ch. 1 (151)
     β”‚   β”œΒ·Β·[x] Solve ex. 4 (50)
     β”‚   β”œΒ·Β·[x] Solve ex. 5 (51)
     β”‚   β”œΒ·Β·[x] Solve ex. 6 (52)
     β”‚   β”œΒ·Β·[ ] Solve ex. 7 (53)
     β”‚   β””Β·Β·[x] Solve ex. 8 (54)
     └──[x] Work on ch. 2 (152)

The goal here is to save space from children of checked nodes.
Or tree --concise may be better.

BTW, nice work! Thanks.

nil pointer error when link to non-existent task

When i create link to non-existent task, i get this error:

panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x532ca6]

goroutine 1 [running]:
github.com/jawher/mow.cli/internal/flow.(*Step).Run(0xc000100870, 0x643f80, 0x790df0)
	/home/anton/go/pkg/mod/github.com/jawher/[email protected]/internal/flow/flow.go:39 +0xd8
github.com/jawher/mow.cli/internal/flow.(*Step).Run(0xc0001008d0, 0x643f80, 0x790df0)
	/home/anton/go/pkg/mod/github.com/jawher/[email protected]/internal/flow/flow.go:29 +0xbb
github.com/jawher/mow.cli/internal/flow.(*Step).Run(0xc000100b40, 0x643f80, 0x790df0)
	/home/anton/go/pkg/mod/github.com/jawher/[email protected]/internal/flow/flow.go:29 +0xbb
github.com/jawher/mow.cli/internal/flow.(*Step).callDo.func1(0xc000100b70, 0x0, 0x0)
	/home/anton/go/pkg/mod/github.com/jawher/[email protected]/internal/flow/flow.go:52 +0x4e
panic(0x643f80, 0x790df0)
	/usr/lib/go/src/runtime/panic.go:965 +0x1b9
github.com/climech/grit/multitree.validateNewLink(0x0, 0xc000124070, 0xc0001243f0, 0xc000124700)
	/home/anton/.cache/pacaur/grit-task-manager/src/grit/multitree/node.go:313 +0x26
github.com/climech/grit/multitree.LinkNodes(0x0, 0xc000124070, 0xc000124070, 0x0)
	/home/anton/.cache/pacaur/grit-task-manager/src/grit/multitree/node.go:345 +0x39
github.com/climech/grit/db.createLink(0xc000118280, 0xa, 0x6, 0x0, 0x0, 0x6)
	/home/anton/.cache/pacaur/grit-task-manager/src/grit/db/link.go:55 +0x9f
github.com/climech/grit/db.(*Database).CreateLink.func1(0xc000118280, 0xc000118280, 0x0)
	/home/anton/.cache/pacaur/grit-task-manager/src/grit/db/link.go:73 +0x46
github.com/climech/grit/db.(*Database).execTxFunc(0xc00000e288, 0xc00011f938, 0x0, 0x0)
	/home/anton/.cache/pacaur/grit-task-manager/src/grit/db/db.go:79 +0x5d
github.com/climech/grit/db.(*Database).CreateLink(0xc00000e288, 0xa, 0x6, 0x6, 0x0, 0x0)
	/home/anton/.cache/pacaur/grit-task-manager/src/grit/db/link.go:80 +0x79
github.com/climech/grit/app.(*App).LinkNodes(0xc000010180, 0x638ec0, 0xc000056800, 0x638ec0, 0xc000056810, 0x73, 0x0, 0x0)
	/home/anton/.cache/pacaur/grit-task-manager/src/grit/app/app.go:206 +0x225
main.cmdLink.func1()
	/home/anton/.cache/pacaur/grit-task-manager/src/grit/cmd/grit/cmds.go:190 +0x1a5
github.com/jawher/mow.cli/internal/flow.(*Step).callDo(0xc000100b70, 0x0, 0x0)
	/home/anton/go/pkg/mod/github.com/jawher/[email protected]/internal/flow/flow.go:55 +0x70
github.com/jawher/mow.cli/internal/flow.(*Step).Run(0xc000100b70, 0x0, 0x0)
	/home/anton/go/pkg/mod/github.com/jawher/[email protected]/internal/flow/flow.go:25 +0x45
github.com/jawher/mow.cli/internal/flow.(*Step).Run(0xc000100b10, 0x0, 0x0)
	/home/anton/go/pkg/mod/github.com/jawher/[email protected]/internal/flow/flow.go:29 +0xbb
github.com/jawher/mow.cli/internal/flow.(*Step).Run(0xc0001008a0, 0x0, 0x0)
	/home/anton/go/pkg/mod/github.com/jawher/[email protected]/internal/flow/flow.go:29 +0xbb
github.com/jawher/mow.cli/internal/flow.(*Step).Run(0xc000053eb8, 0x0, 0x0)
	/home/anton/go/pkg/mod/github.com/jawher/[email protected]/internal/flow/flow.go:29 +0xbb
github.com/jawher/mow%2ecli.(*Cmd).parse(0xc000116700, 0xc0000120e0, 0x2, 0x2, 0xc000053eb8, 0xc0001008a0, 0xc0001008d0, 0xc000100200, 0xc000060100)
	/home/anton/go/pkg/mod/github.com/jawher/[email protected]/commands.go:693 +0x53c
github.com/jawher/mow%2ecli.(*Cmd).parse(0xc000116000, 0xc0000120d0, 0x3, 0x3, 0xc000053eb8, 0xc000053eb8, 0xc000100870, 0x0, 0x659bc0)
	/home/anton/go/pkg/mod/github.com/jawher/[email protected]/commands.go:707 +0x785
github.com/jawher/mow%2ecli.(*Cli).parse(0xc000053f48, 0xc0000120d0, 0x3, 0x3, 0xc000053eb8, 0xc000053eb8, 0xc000100870, 0x1, 0xc000118080)
	/home/anton/go/pkg/mod/github.com/jawher/[email protected]/cli.go:76 +0x85
github.com/jawher/mow%2ecli.(*Cli).Run(0xc000053f48, 0xc0000120c0, 0x4, 0x4, 0x18, 0x678d00)
	/home/anton/go/pkg/mod/github.com/jawher/[email protected]/cli.go:105 +0x12b
main.main()
	/home/anton/.cache/pacaur/grit-task-manager/src/grit/cmd/grit/main.go:36 +0x5bf

all commands panic on mac

I've install using make && make install, and I have go 1.17 + gcc. here's the panic:

$ grit                                                                                                                                                                                          [8:53:27]
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0xb01dfacedebac1e pc=0x7fff205d7cbe]

runtime stack:
runtime: unexpected return pc for runtime.sigpanic called from 0x7fff205d7cbe
stack: frame={sp:0x7ffeefbff5b8, fp:0x7ffeefbff608} stack=[0x7ffeefb80658,0x7ffeefbff6c0)
0x00007ffeefbff4b8:  0x01007ffeefbff4d8  0x0000000000000004
0x00007ffeefbff4c8:  0x000000000000001f  0x00007fff205d7cbe
0x00007ffeefbff4d8:  0x0b01dfacedebac1e  0x0000000000000001
0x00007ffeefbff4e8:  0x0000000004034df1 <runtime.throw+0x0000000000000071>  0x00007ffeefbff588
0x00007ffeefbff4f8:  0x000000000428e7af  0x00007ffeefbff540
0x00007ffeefbff508:  0x00000000040350a8 <runtime.fatalthrow.func1+0x0000000000000048>  0x00000000043c8e00
0x00007ffeefbff518:  0x0000000000000001  0x0000000000000001
0x00007ffeefbff528:  0x00007ffeefbff588  0x0000000004034df1 <runtime.throw+0x0000000000000071>
0x00007ffeefbff538:  0x00000000043c8e00  0x00007ffeefbff578
0x00007ffeefbff548:  0x0000000004035030 <runtime.fatalthrow+0x0000000000000050>  0x00007ffeefbff558
0x00007ffeefbff558:  0x0000000004035060 <runtime.fatalthrow.func1+0x0000000000000000>  0x00000000043c8e00
0x00007ffeefbff568:  0x0000000004034df1 <runtime.throw+0x0000000000000071>  0x00007ffeefbff588
0x00007ffeefbff578:  0x00007ffeefbff5a8  0x0000000004034df1 <runtime.throw+0x0000000000000071>
0x00007ffeefbff588:  0x00007ffeefbff590  0x0000000004034e20 <runtime.throw.func1+0x0000000000000000>
0x00007ffeefbff598:  0x0000000004291700  0x000000000000002a
0x00007ffeefbff5a8:  0x00007ffeefbff5f8  0x000000000404a3f6 <runtime.sigpanic+0x0000000000000396>
0x00007ffeefbff5b8: <0x0000000004291700  0x000000000401a8e5 <runtime.(*fixalloc).alloc+0x0000000000000085>
0x00007ffeefbff5c8:  0x00007ffeefbff638  0x00000000040280a6 <runtime.(*mheap).allocSpan+0x0000000000000546>
0x00007ffeefbff5d8:  0x000000c000110000  0x0000000000002000
0x00007ffeefbff5e8:  0x000000c000000008  0x000000000409f440 <syscall.libc_stat64_trampoline+0x0000000000000000>
0x00007ffeefbff5f8:  0x00007ffeefbff640 !0x00007fff205d7cbe
0x00007ffeefbff608: >0x00007ffeefbff640  0x00000000043a8000
0x00007ffeefbff618:  0x00000000000002b2  0x0000000004112205 <golang.org/x/sys/unix.libc_ioctl_trampoline+0x0000000000000005>
0x00007ffeefbff628:  0x0000000004065c3f <runtime.syscall+0x000000000000001f>  0x000000c000051848
0x00007ffeefbff638:  0x00007ffeefbff680  0x000000c000051818
0x00007ffeefbff648:  0x0000000004063ad0 <runtime.asmcgocall+0x0000000000000070>  0x0000000000000001
0x00007ffeefbff658:  0x000000c000062600  0x2600000004294fd0
0x00007ffeefbff668:  0x0000000000000010  0x0000000004268160
0x00007ffeefbff678:  0x0000000000000810  0x000000c0000001a0
0x00007ffeefbff688:  0x0000000004061be9 <runtime.systemstack+0x0000000000000049>  0x0000000000000004
0x00007ffeefbff698:  0x00000000042bb278  0x00000000043c8e00
0x00007ffeefbff6a8:  0x00007ffeefbff6f0  0x0000000004061ae5 <runtime.mstart+0x0000000000000005>
0x00007ffeefbff6b8:  0x0000000004061a9d <runtime.rt0_go+0x000000000000013d>
runtime.throw({0x4291700, 0x401a8e5})
	/usr/local/Cellar/go/1.17/libexec/src/runtime/panic.go:1198 +0x71
runtime: unexpected return pc for runtime.sigpanic called from 0x7fff205d7cbe
stack: frame={sp:0x7ffeefbff5b8, fp:0x7ffeefbff608} stack=[0x7ffeefb80658,0x7ffeefbff6c0)
0x00007ffeefbff4b8:  0x01007ffeefbff4d8  0x0000000000000004
0x00007ffeefbff4c8:  0x000000000000001f  0x00007fff205d7cbe
0x00007ffeefbff4d8:  0x0b01dfacedebac1e  0x0000000000000001
0x00007ffeefbff4e8:  0x0000000004034df1 <runtime.throw+0x0000000000000071>  0x00007ffeefbff588
0x00007ffeefbff4f8:  0x000000000428e7af  0x00007ffeefbff540
0x00007ffeefbff508:  0x00000000040350a8 <runtime.fatalthrow.func1+0x0000000000000048>  0x00000000043c8e00
0x00007ffeefbff518:  0x0000000000000001  0x0000000000000001
0x00007ffeefbff528:  0x00007ffeefbff588  0x0000000004034df1 <runtime.throw+0x0000000000000071>
0x00007ffeefbff538:  0x00000000043c8e00  0x00007ffeefbff578
0x00007ffeefbff548:  0x0000000004035030 <runtime.fatalthrow+0x0000000000000050>  0x00007ffeefbff558
0x00007ffeefbff558:  0x0000000004035060 <runtime.fatalthrow.func1+0x0000000000000000>  0x00000000043c8e00
0x00007ffeefbff568:  0x0000000004034df1 <runtime.throw+0x0000000000000071>  0x00007ffeefbff588
0x00007ffeefbff578:  0x00007ffeefbff5a8  0x0000000004034df1 <runtime.throw+0x0000000000000071>
0x00007ffeefbff588:  0x00007ffeefbff590  0x0000000004034e20 <runtime.throw.func1+0x0000000000000000>
0x00007ffeefbff598:  0x0000000004291700  0x000000000000002a
0x00007ffeefbff5a8:  0x00007ffeefbff5f8  0x000000000404a3f6 <runtime.sigpanic+0x0000000000000396>
0x00007ffeefbff5b8: <0x0000000004291700  0x000000000401a8e5 <runtime.(*fixalloc).alloc+0x0000000000000085>
0x00007ffeefbff5c8:  0x00007ffeefbff638  0x00000000040280a6 <runtime.(*mheap).allocSpan+0x0000000000000546>
0x00007ffeefbff5d8:  0x000000c000110000  0x0000000000002000
0x00007ffeefbff5e8:  0x000000c000000008  0x000000000409f440 <syscall.libc_stat64_trampoline+0x0000000000000000>
0x00007ffeefbff5f8:  0x00007ffeefbff640 !0x00007fff205d7cbe
0x00007ffeefbff608: >0x00007ffeefbff640  0x00000000043a8000
0x00007ffeefbff618:  0x00000000000002b2  0x0000000004112205 <golang.org/x/sys/unix.libc_ioctl_trampoline+0x0000000000000005>
0x00007ffeefbff628:  0x0000000004065c3f <runtime.syscall+0x000000000000001f>  0x000000c000051848
0x00007ffeefbff638:  0x00007ffeefbff680  0x000000c000051818
0x00007ffeefbff648:  0x0000000004063ad0 <runtime.asmcgocall+0x0000000000000070>  0x0000000000000001
0x00007ffeefbff658:  0x000000c000062600  0x2600000004294fd0
0x00007ffeefbff668:  0x0000000000000010  0x0000000004268160
0x00007ffeefbff678:  0x0000000000000810  0x000000c0000001a0
0x00007ffeefbff688:  0x0000000004061be9 <runtime.systemstack+0x0000000000000049>  0x0000000000000004
0x00007ffeefbff698:  0x00000000042bb278  0x00000000043c8e00
0x00007ffeefbff6a8:  0x00007ffeefbff6f0  0x0000000004061ae5 <runtime.mstart+0x0000000000000005>
0x00007ffeefbff6b8:  0x0000000004061a9d <runtime.rt0_go+0x000000000000013d>
runtime.sigpanic()
	/usr/local/Cellar/go/1.17/libexec/src/runtime/signal_unix.go:719 +0x396

goroutine 1 [syscall, locked to thread]:
syscall.syscall(0x4112200, 0x1, 0x40487413, 0xc0000518d8)
	/usr/local/Cellar/go/1.17/libexec/src/runtime/sys_darwin.go:22 +0x3b fp=0xc000051848 sp=0xc000051828 pc=0x406093b
syscall.syscall(0x409b306, 0x400f2d4, 0xc000051900, 0x409b238)
	<autogenerated>:1 +0x26 fp=0xc000051890 sp=0xc000051848 pc=0x40663c6
golang.org/x/sys/unix.ioctl(0x4288624, 0x4, 0x1000000000008)
	/Users/Cam/go/pkg/mod/golang.org/x/[email protected]/unix/zsyscall_darwin_amd64.go:746 +0x39 fp=0xc0000518c0 sp=0xc000051890 pc=0x4111e99
golang.org/x/sys/unix.IoctlGetTermios(...)
	/Users/Cam/go/pkg/mod/golang.org/x/[email protected]/unix/ioctl.go:63
github.com/mattn/go-isatty.IsTerminal(0x4288624)
	/Users/Cam/go/pkg/mod/github.com/mattn/[email protected]/isatty_bsd.go:10 +0x50 fp=0xc000051930 sp=0xc0000518c0 pc=0x41122b0
github.com/fatih/color.init()
	/Users/Cam/go/pkg/mod/github.com/fatih/[email protected]/color.go:21 +0x7a fp=0xc000051968 sp=0xc000051930 pc=0x4112ffa
runtime.doInit(0x43ae220)
	/usr/local/Cellar/go/1.17/libexec/src/runtime/proc.go:6498 +0x123 fp=0xc000051aa0 sp=0xc000051968 pc=0x4044363
runtime.doInit(0x43ae1c0)
	/usr/local/Cellar/go/1.17/libexec/src/runtime/proc.go:6475 +0x71 fp=0xc000051bd8 sp=0xc000051aa0 pc=0x40442b1
runtime.doInit(0x43ad440)
	/usr/local/Cellar/go/1.17/libexec/src/runtime/proc.go:6475 +0x71 fp=0xc000051d10 sp=0xc000051bd8 pc=0x40442b1
runtime.doInit(0x43adfe0)
	/usr/local/Cellar/go/1.17/libexec/src/runtime/proc.go:6475 +0x71 fp=0xc000051e48 sp=0xc000051d10 pc=0x40442b1
runtime.doInit(0x43ae5a0)
	/usr/local/Cellar/go/1.17/libexec/src/runtime/proc.go:6475 +0x71 fp=0xc000051f80 sp=0xc000051e48 pc=0x40442b1
runtime.main()
	/usr/local/Cellar/go/1.17/libexec/src/runtime/proc.go:238 +0x1e6 fp=0xc000051fe0 sp=0xc000051f80 pc=0x4037446
runtime.goexit()
	/usr/local/Cellar/go/1.17/libexec/src/runtime/asm_amd64.s:1581 +0x1 fp=0xc000051fe8 sp=0xc000051fe0 pc=0x4063dc1
FAIL

I've tried uninstalling and reinstalling. any ideas?

Task "Submodules"

It would be really useful to be able to "mount" a multitree stored in a separate directory. Ideally it would be great if we could store this sub-directory in a project folder under git. The hope is that we can use this tool to create per-project task lists and manage/monitor these via git.

[PANIC] When trying to link node from non-date root to date node 0

I'm getting panic when trying to link an existing node (from non date root) to not-yet-created date node 0.

Steps to reproduce

grit add -r Root # say it's num (1)
=> (1)
grit add -p 1 Child
=> (1) -> (2)
grit link 0 2

Full Backtrace

panic: invalid date node name: 0 [recovered]
	panic: invalid date node name: 0

goroutine 1 [running]:
github.com/jawher/mow.cli/internal/flow.(*Step).Run(0xc00007e870, 0x4290e40, 0xc0000548f0)
	/Users/vaporyhumo/go/pkg/mod/github.com/jawher/[email protected]/internal/flow/flow.go:39 +0xd8
github.com/jawher/mow.cli/internal/flow.(*Step).Run(0xc00007e8d0, 0x4290e40, 0xc0000548f0)
	/Users/vaporyhumo/go/pkg/mod/github.com/jawher/[email protected]/internal/flow/flow.go:29 +0xbb
github.com/jawher/mow.cli/internal/flow.(*Step).Run(0xc00007eb40, 0x4290e40, 0xc0000548f0)
	/Users/vaporyhumo/go/pkg/mod/github.com/jawher/[email protected]/internal/flow/flow.go:29 +0xbb
github.com/jawher/mow.cli/internal/flow.(*Step).callDo.func1(0xc00007eb70, 0x0, 0x0)
	/Users/vaporyhumo/go/pkg/mod/github.com/jawher/[email protected]/internal/flow/flow.go:52 +0x4e
panic(0x4290e40, 0xc0000548f0)
	/usr/local/go/src/runtime/panic.go:965 +0x1b9
github.com/climech/grit/db.(*Database).CreateLinkFromDateNode(0xc00000e2a0, 0x7ffeefbff722, 0x1, 0x6, 0x0, 0x0, 0xc00011b9c8)
	/Users/vaporyhumo/git/tools/grit/db/link.go:97 +0x12b
github.com/climech/grit/app.(*App).LinkNodes(0xc000010180, 0x42891c0, 0xc000054800, 0x42891c0, 0xc000054810, 0x73, 0x0, 0x0)
	/Users/vaporyhumo/git/tools/grit/app/app.go:231 +0x188
main.cmdLink.func1()
	/Users/vaporyhumo/git/tools/grit/cmd/grit/cmds.go:190 +0x1a5
github.com/jawher/mow.cli/internal/flow.(*Step).callDo(0xc00007eb70, 0x0, 0x0)
	/Users/vaporyhumo/go/pkg/mod/github.com/jawher/[email protected]/internal/flow/flow.go:55 +0x70
github.com/jawher/mow.cli/internal/flow.(*Step).Run(0xc00007eb70, 0x0, 0x0)
	/Users/vaporyhumo/go/pkg/mod/github.com/jawher/[email protected]/internal/flow/flow.go:25 +0x45
github.com/jawher/mow.cli/internal/flow.(*Step).Run(0xc00007eb10, 0x0, 0x0)
	/Users/vaporyhumo/go/pkg/mod/github.com/jawher/[email protected]/internal/flow/flow.go:29 +0xbb
github.com/jawher/mow.cli/internal/flow.(*Step).Run(0xc00007e8a0, 0x0, 0x0)
	/Users/vaporyhumo/go/pkg/mod/github.com/jawher/[email protected]/internal/flow/flow.go:29 +0xbb
github.com/jawher/mow.cli/internal/flow.(*Step).Run(0xc000051eb8, 0x0, 0x0)
	/Users/vaporyhumo/go/pkg/mod/github.com/jawher/[email protected]/internal/flow/flow.go:29 +0xbb
github.com/jawher/mow%2ecli.(*Cmd).parse(0xc000110700, 0xc0000120e0, 0x2, 0x2, 0xc000051eb8, 0xc00007e8a0, 0xc00007e8d0, 0xc00007e200, 0xc00005e100)
	/Users/vaporyhumo/go/pkg/mod/github.com/jawher/[email protected]/commands.go:693 +0x53c
github.com/jawher/mow%2ecli.(*Cmd).parse(0xc000110000, 0xc0000120d0, 0x3, 0x3, 0xc000051eb8, 0xc000051eb8, 0xc00007e870, 0x0, 0x42a9e00)
	/Users/vaporyhumo/go/pkg/mod/github.com/jawher/[email protected]/commands.go:707 +0x785
github.com/jawher/mow%2ecli.(*Cli).parse(0xc000051f48, 0xc0000120d0, 0x3, 0x3, 0xc000051eb8, 0xc000051eb8, 0xc00007e870, 0x1, 0xc000114080)
	/Users/vaporyhumo/go/pkg/mod/github.com/jawher/[email protected]/cli.go:76 +0x85
github.com/jawher/mow%2ecli.(*Cli).Run(0xc000051f48, 0xc0000120c0, 0x4, 0x4, 0x18, 0x42c8b58)
	/Users/vaporyhumo/go/pkg/mod/github.com/jawher/[email protected]/cli.go:105 +0x12b
main.main()
	/Users/vaporyhumo/git/tools/grit/cmd/grit/main.go:36 +0x5bf

I love it

Just a pointless comment to tell you that I've been using grit for a couple of days now and I think it's great. I like how it handles nesting.. which is usually what keeps bringing me back to the pen and pad. Excited to see where this goes.

List all nodes

Thanks for this nifty little tool. I might be overseeing something but is there a way for the lazy to list all children nodes? I'm currently doing it this way but I was hoping there was a bit more elegant way :)

alias gritshowall="grit list-dates | grep -o '(.*)' | sed 's/(//' | sed 's/)//' | xargs -l grit ls"

Brew formula

Thank you for making this! I found this project through HN and love the idea and execution.

I made a simple formula that enables the installation of grit using brew. It currently uses ab30f86 instead of a release version, because v0.2.0 does not build on macOS.

https://github.com/nvgrw/homebrew-formulae/blob/master/Formula/grit.rb

Installation is as simple as running brew install nvgrw/formulae/grit.

Obviously this is your project. Would you be able to set up your own brew tap and maintain a grit formula that is in sync with the releases in this repository? I'm pretty much a brew noob so this formula I whipped up probably doesn't follow any established best practicesβ€”it could be a useful starting point, though!

The name `grit`.

I know changing a repositories name can lead to many problems. But I still think it should be changed.The name grit is already used a lot by other projects - often related to git which this is not. The name therefore doesn't seem very creative.

It seems to be a task node manager.

$XDG_CONFIG_HOME is ignored on macOS

grit stores the graph in ~/Library/Application Support/grit rather than $XDG_CONFIG_HOME/grit. Question: can configdir be adapted to this circumstance, or will the environment variable be ignored intentionally no matter what? I ask this because this is now my only CLI utility that stores stuff in my Library folder.

Shell auto completion

I think a CLI tool like this would benefit greatly from having a robust shell auto completion.

Did some basic research and saw that the CLI lib you're using doesn't seem to have this feature either: jawher/mow.cli#113 -- which is a shame. Would you consider vendoring in these changes until the library devs figure out what to do?

I'd love to provide an MR instead of just a feature request, but I don't really know Go and its packaging well enough.

Task order

Ooh, I love it already, this has a lot of potential.

I was wondering though, now tasks are sorted alphabetically, instead of the order in which they are added. Is this on purpose? Because I tend to order my tasks and start at the top.

Would it be possible to sort tasks based on ID (so based on when they were added)? Or don't you want to get into the mess of allowing reordering? :P

diamonds are not allowed

when i tried to link two tasks , following error occurred :

Couldn't create link (5) -> (3): diamonds are not allowed

my terminal is alacritty ans OS is Arch Linux

Build fails on Windows Subsystem for Linux

Haven't had time to investigate yet, but linking is failing on WSL (Windows 10, Linux my-pc-name 4.4.0-19041-Microsoft #488-Microsoft Mon Sep 01 13:43:00 PST 2020 x86_64 x86_64 x86_64 GNU/Linux).

$ make
github.com/jawher/mow.cli/internal/flow
golang.org/x/sys/unix
github.com/climech/naturalsort
github.com/jawher/mow.cli/internal/lexer
github.com/kirsle/configdir
github.com/jawher/mow.cli/internal/container
github.com/jawher/mow.cli/internal/values
github.com/jawher/mow.cli/internal/matcher
github.com/mattn/go-sqlite3
github.com/jawher/mow.cli/internal/fsm
github.com/jawher/mow.cli/internal/parser
github.com/mattn/go-isatty
github.com/mattn/go-colorable
github.com/jawher/mow.cli
github.com/fatih/color
github.com/climech/grit/multitree
github.com/climech/grit/db
github.com/climech/grit/app
github.com/climech/grit/cmd/grit
# github.com/climech/grit/cmd/grit
/usr/local/go/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/usr/bin/ld: /tmp/go-link-620432474/000015.o: unrecognized relocation (0x2a) in section `.text'
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status

make: *** [grit] Error 2

Things I've tried to no effect so far:

  • Clearing ~/.cache/go-build/
  • Running apt upgrade and apt update

Go version:

$ go version
go version go1.16.3 linux/amd64

GCC:

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.4-2ubuntu1~14.04.4' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.4)

import -p=<n> doesn't work

Importing with a specified predecessor just creates a new root node no matter what.

> grit stat 1
(1) ──── (2)

ID: 1
Name: 2021-04-04
Status: inactive (0/5)
Parents: 0
Children: 1
Created: 2021-04-04 15:10:15
> grit import -p=1 (cat | psub)
Test node
^D
[ ] Test node (12)
Imported 1 trees (1 nodes)
> grit stat 12
ID: 12
Name: Test node
Status: inactive (0/1)
Parents: 0
Children: 0
Created: 2021-04-04 16:07:51

Labels

It would be nice to CRUD labels on tasks, links, etc and then be able to query them as well

Feature Request: Notes and search

Hi!
Thanks for the great tool.
It seems like it has big potential. Would be great to have ability to add notes to tasks and search through them.

Dockerfile

Hello!

Thanks for this amazing project. I saw it from lobste.rs.
I discovered the existence of multitree, and I will dig into that field.

Nonetheless, I am not fond of golang and don't want to install it on my machine, so I created a Dockerfile to compile and then run your project.

In a Dockerfile file at the root of your project:

FROM golang:1.16.3 AS build-env

WORKDIR /src
ADD . /src

RUN make

FROM ubuntu
COPY --from=build-env /src/grit /
ENTRYPOINT ["/grit"]

I built like this:

$ docker build -t grit .

And an alias:

$ alias grit='docker run --rm -it -v "$HOME/.config/grit":"/root/.config/grit" grit'

And I was able to follow your samples.

You may perhaps take advantage of the dockerhub automated builds and propose a built version of your project.

Note: I tried to make a distroless image, but I fall for the libc6 dependencies.
Note2: I can create a PR if you like the idea.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.