Skip to content

Commit f6f9200

Browse files
committed
Changed name as old name was already being used
1 parent 0d45c96 commit f6f9200

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+240
-172
lines changed

.DS_Store

0 Bytes
Binary file not shown.

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
ultodo.code-workspace
1+
redovc.code-workspace
22
.vscode/settings.json
33
main
44
.DS_Store

README.md

+71-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,72 @@
1-
# ultodo
2-
New clean copy of [ultralist](https://github.com/ultralist) updating golang mods, deprecated packages and adding a bit of functionality.
1+
# redo.vc (formerly redovc)
2+
Built on [ultralist](https://github.com/ultralist)
33

4-
HUGE thanks to everyone who created ultralist, an amazing todo tool
4+
Redo.vc is a tool for command line fans that allows you to track your tasks. It is a full featured todo manager with tagging, projects, recurring tasks and much more, all stored in a JSON file so it is super portable and tooling new apps for the data format is super easy.
5+
6+
7+
## Features
8+
9+
* Tasks can be assigned to a project.
10+
* Projects can be created dynamically while creating todos
11+
* Tasks can have a due date or NO due date
12+
* Tags can be specified by using the '#' prepended to single word. If it does not exist, it will be created.
13+
* Projects can be specified by using the '+' prepended to a single word in the description. If the project does not exist, it will be created
14+
* Tasks can be prioritized
15+
* Notes can be added to tasks and shown or hidden when listing tasks
16+
* Due dates can be absolute (oct25) or relative (monday, today, etc.)
17+
* Tasks can be marked as completed
18+
* Tasks can be archived
19+
* Tasks can be deleted
20+
* Tasks can be sorted, segmented, grouped and shown ur hidden using the extensive command line options
21+
* Tasks are color coded with specific colors for due dates, ID's, tags, projects and more
22+
* Groupings comtain the number of tasks
23+
* Abbreviations for most commands to save you keystrokes
24+
* Auto completion for various shells can be generated
25+
* A task status can be specified (doing, waiting, evening, etc)
26+
27+
28+
## Future Plans
29+
* Theming
30+
* Syncing via cloud providers (Google Drive, iCloud, Dropbox, etc.)
31+
* Web UI
32+
* Importing from common formats
33+
* Config file defaults
34+
* Whatever you would like to see!
35+
36+
37+
## Builds
38+
39+
Redo.vc is available for most configurations. Go to the relase page, download the proper archive for your device.
40+
41+
Once the file has downloaded, extract the binary and put it somewhere that is accessible from your terminal.
42+
43+
To run the app, just use the command redovc (some releases use the previous name redovc). To learn more about what you can do with the app, use the following command:
44+
```
45+
redovc --help
46+
```
47+
48+
To learn about a specific command, run redovc with the command and then --help:
49+
```
50+
redovc [command] --help
51+
```
52+
53+
## Contribute
54+
55+
Clone locally and run
56+
```
57+
go build main.go
58+
```
59+
60+
OR (using rake)
61+
```
62+
rake build
63+
```
64+
65+
## Shoutouts
66+
67+
* [ultralist](https://github.com/ultralist) - HUGE thanks to everyone who created [ultralist](https://github.com/ultralist), an amazing todo tool!
68+
69+
70+
## License
71+
72+
Redo.vc uses the MIT License. Please see the [redo.vc license](https://github.com/sottey/redo.vc/blob/main/LICENSE) for details

Rakefile

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
desc "Builds ultodo for release"
1+
desc "Builds redovc for release"
22

33
Envs = [
44
{ goos: "darwin", arch: "386" },
@@ -11,26 +11,26 @@ Envs = [
1111
{ goos: "windows", arch: "amd64" }
1212
].freeze
1313

14-
Version = "1.7.2".freeze
14+
Version = "1.7.3".freeze
1515

1616
task :build do
1717
`rm -rf dist/#{Version}`
1818
Envs.each do |env|
1919
ENV["GOOS"] = env[:goos]
2020
ENV["GOARCH"] = env[:arch]
2121
puts "Building #{env[:goos]} #{env[:arch]}"
22-
`GOOS=#{env[:goos]} GOARCH=#{env[:arch]} CGO_ENABLED=0 go build -v -o dist/#{Version}/ultodo`
22+
`GOOS=#{env[:goos]} GOARCH=#{env[:arch]} CGO_ENABLED=0 go build -v -o dist/#{Version}/redovc`
2323
if env[:goos] == "windows"
2424
puts "Creating windows executable"
25-
`mv dist/#{Version}/ultodo dist/#{Version}/ultodo.exe`
26-
`cd dist/#{Version} && zip ultodo_win.zip ultodo.exe`
25+
`mv dist/#{Version}/redovc dist/#{Version}/redovc.exe`
26+
`cd dist/#{Version} && zip redovc_win.zip redovc.exe`
2727
puts "Removing windows executable"
28-
`rm -rf dist/#{Version}/ultodo.exe`
28+
`rm -rf dist/#{Version}/redovc.exe`
2929
else
3030
puts "Tarring #{env[:goos]} #{env[:arch]}"
31-
`cd dist/#{Version} && tar -czvf ultodo#{env[:goos]}_#{env[:arch]}.tar.gz ultodo`
32-
puts "Removing dist/#{Version}/ultodo"
33-
`rm -rf dist/#{Version}/ultodo`
31+
`cd dist/#{Version} && tar -czvf redovc#{env[:goos]}_#{env[:arch]}.tar.gz redovc`
32+
puts "Removing dist/#{Version}/redovc"
33+
`rm -rf dist/#{Version}/redovc`
3434
end
3535
end
3636
end

cmd/add.go

+10-10
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,30 @@ package cmd
33
import (
44
"strings"
55

6-
"github.com/sottey/ultodo/ultodo"
6+
"github.com/sottey/redo.vc/redovc"
77
"github.com/spf13/cobra"
88
)
99

1010
func init() {
1111
var (
1212
addCmdDesc = "Adds todos"
13-
addCmdExample = ` ultodo add Prepare meeting notes about +importantProject for the meeting with #bob due:today
14-
ultodo add Meeting with #bob about +project due:tod
15-
ultodo a +work +verify did #john fix the build? due:tom
16-
ultodo a here is an important task priority:true recur:weekdays due:tom`
13+
addCmdExample = ` redovc add Prepare meeting notes about +importantProject for the meeting with #bob due:today
14+
redovc add Meeting with #bob about +project due:tod
15+
redovc a +work +verify did #john fix the build? due:tom
16+
redovc a here is an important task priority:true recur:weekdays due:tom`
1717

1818
addCmdLongDesc = `Adds todos.
1919
2020
You can optionally specify a due date.
2121
This can be done by by putting 'due:<date>' at the end, where <date> is in (tod|today|tom|tomorrow|mon|tue|wed|thu|fri|sat|sun|thisweek|nextweek).
2222
2323
Dates can also be explicit, using 3 characters for the month. They can be written in 2 different formats:
24-
ultodo a buy flowers for mom due:may12
25-
ultodo get halloween candy due:31oct
24+
redovc a buy flowers for mom due:may12
25+
redovc get halloween candy due:31oct
2626
2727
Todos can also recur. Set the 'recur' directive to control recurrence:
28-
ultodo a Daily standup recur:weekdays
29-
ultodo a 1on1 meeting with jim recur:weekly
28+
redovc a Daily standup recur:weekdays
29+
redovc a 1on1 meeting with jim recur:weekly
3030
`
3131
)
3232

@@ -38,7 +38,7 @@ func init() {
3838
Short: addCmdDesc,
3939
Args: cobra.MinimumNArgs(1),
4040
Run: func(cmd *cobra.Command, args []string) {
41-
ultodo.NewApp().AddTodo(strings.Join(args, " "))
41+
redovc.NewApp().AddTodo(strings.Join(args, " "))
4242
},
4343
}
4444

cmd/add_note.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ import (
44
"strconv"
55
"strings"
66

7-
"github.com/sottey/ultodo/ultodo"
7+
"github.com/sottey/redo.vc/redovc"
88
"github.com/spf13/cobra"
99
)
1010

1111
func init() {
1212
var (
1313
addNoteCmdDesc = "Adds notes to a todo."
14-
addNoteCmdExample = " ultodo an 1 this is a note for the first todo"
14+
addNoteCmdExample = " redovc an 1 this is a note for the first todo"
1515
)
1616

1717
var addNoteCmd = &cobra.Command{
@@ -22,7 +22,7 @@ func init() {
2222
Args: cobra.MinimumNArgs(2),
2323
Run: func(cmd *cobra.Command, args []string) {
2424
todoID, _ := strconv.Atoi(args[0])
25-
ultodo.NewApp().AddNote(todoID, strings.Join(args[1:], " "))
25+
redovc.NewApp().AddNote(todoID, strings.Join(args[1:], " "))
2626
},
2727
}
2828
rootCmd.AddCommand(addNoteCmd)

cmd/archive.go

+16-16
Original file line numberDiff line numberDiff line change
@@ -3,31 +3,31 @@ package cmd
33
import (
44
"strings"
55

6-
"github.com/sottey/ultodo/ultodo"
6+
"github.com/sottey/redo.vc/redovc"
77
"github.com/spf13/cobra"
88
)
99

1010
func init() {
1111
var (
1212
archiveCmdExample = `
1313
To archive a todo with id 33:
14-
ultodo archive 33
15-
ultodo ar 33
14+
redovc archive 33
15+
redovc ar 33
1616
1717
To unarchive todo with id 33:
18-
ultodo unarchive 33
19-
ultodo uar 33
18+
redovc unarchive 33
19+
redovc uar 33
2020
2121
To archive all completed todos:
22-
ultodo archive completed
23-
ultodo ar c
22+
redovc archive completed
23+
redovc ar c
2424
2525
Garbage collection will delete all archived todos, reclaming ids:
26-
ultodo archive gc
27-
ultodo ar gc
26+
redovc archive gc
27+
redovc ar gc
2828
29-
ultodo archive gc
30-
ultodo ar gc
29+
redovc archive gc
30+
redovc ar gc
3131
Run garbage collection. Delete all archived todos and reclaim ids`
3232
)
3333

@@ -37,7 +37,7 @@ func init() {
3737
Example: archiveCmdExample,
3838
Short: "Archives a todo.",
3939
Run: func(cmd *cobra.Command, args []string) {
40-
ultodo.NewApp().ArchiveTodo(strings.Join(args, " "))
40+
redovc.NewApp().ArchiveTodo(strings.Join(args, " "))
4141
},
4242
}
4343

@@ -47,17 +47,17 @@ func init() {
4747
Example: archiveCmdExample,
4848
Short: "Un-archives a todo.",
4949
Run: func(cmd *cobra.Command, args []string) {
50-
ultodo.NewApp().UnarchiveTodo(strings.Join(args, " "))
50+
redovc.NewApp().UnarchiveTodo(strings.Join(args, " "))
5151
},
5252
}
5353

5454
var archiveCompletedCmd = &cobra.Command{
5555
Use: "c",
56-
Example: " ultodo archive completed\n ultodo ar c",
56+
Example: " redovc archive completed\n redovc ar c",
5757
Short: "Archives all completed todos.",
5858
Long: `Archives all completed todos.`,
5959
Run: func(cmd *cobra.Command, args []string) {
60-
ultodo.NewApp().ArchiveCompleted()
60+
redovc.NewApp().ArchiveCompleted()
6161
},
6262
}
6363

@@ -67,7 +67,7 @@ func init() {
6767
Short: "Deletes all archived todos.",
6868
Long: `Delete all archived todos, reclaiming ids.`,
6969
Run: func(cmd *cobra.Command, args []string) {
70-
ultodo.NewApp().GarbageCollect()
70+
redovc.NewApp().GarbageCollect()
7171
},
7272
}
7373

cmd/complete.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package cmd
33
import (
44
"strings"
55

6-
"github.com/sottey/ultodo/ultodo"
6+
"github.com/sottey/redo.vc/redovc"
77
"github.com/spf13/cobra"
88
)
99

@@ -13,15 +13,15 @@ func init() {
1313
long = `Completes or un-completes a todo.`
1414
completeCmdExample = `
1515
Complete a todo with id 33:
16-
ultodo complete 33
17-
ultodo c 33
16+
redovc complete 33
17+
redovc c 33
1818
1919
Complete a todo with id 33 and archive it:
20-
ultodo uncomplete 33 --archive
20+
redovc uncomplete 33 --archive
2121
2222
Uncompletes todo with id 33.
23-
ultodo uncomplete 33
24-
ultodo uc 33`
23+
redovc uncomplete 33
24+
redovc uc 33`
2525
)
2626

2727
var completeCmd = &cobra.Command{
@@ -32,7 +32,7 @@ func init() {
3232
Long: long,
3333
Args: cobra.MinimumNArgs(1),
3434
Run: func(cmd *cobra.Command, args []string) {
35-
ultodo.NewApp().CompleteTodo(strings.Join(args, " "), archiveCompletedTodo)
35+
redovc.NewApp().CompleteTodo(strings.Join(args, " "), archiveCompletedTodo)
3636
},
3737
}
3838

@@ -44,7 +44,7 @@ func init() {
4444
Long: long,
4545
Args: cobra.MinimumNArgs(1),
4646
Run: func(cmd *cobra.Command, args []string) {
47-
ultodo.NewApp().UncompleteTodo(strings.Join(args, " "))
47+
redovc.NewApp().UncompleteTodo(strings.Join(args, " "))
4848
},
4949
}
5050

cmd/delete.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@ package cmd
33
import (
44
"strings"
55

6-
"github.com/sottey/ultodo/ultodo"
6+
"github.com/sottey/redo.vc/redovc"
77
"github.com/spf13/cobra"
88
)
99

1010
func init() {
1111
var (
1212
deleteCmdDesc = "Deletes todos"
1313
deleteCmdExample = ` To delete a todo with ID 33:
14-
ultodo d 33
15-
ultodo delete 33
14+
redovc d 33
15+
redovc delete 33
1616
1717
Note, this will also free up the id of 33.`
1818
deleteCmdLongDesc = `Delete a todo with a specified ID.`
@@ -26,7 +26,7 @@ func init() {
2626
Short: deleteCmdDesc,
2727
Args: cobra.MinimumNArgs(1),
2828
Run: func(cmd *cobra.Command, args []string) {
29-
ultodo.NewApp().DeleteTodo(strings.Join(args, " "))
29+
redovc.NewApp().DeleteTodo(strings.Join(args, " "))
3030
},
3131
}
3232

cmd/delete_note.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,18 @@ import (
44
"fmt"
55
"strconv"
66

7-
"github.com/sottey/ultodo/ultodo"
7+
"github.com/sottey/redo.vc/redovc"
88
"github.com/spf13/cobra"
99
)
1010

1111
func init() {
1212
var (
1313
long = `Delete a note from a todo.`
1414
example = ` To see your todos with notes:
15-
ultodo list --notes
15+
redovc list --notes
1616
1717
To delete note 0 from todo 3:
18-
ultodo dn 3 0`
18+
redovc dn 3 0`
1919
)
2020

2121
var deleteNoteCmd = &cobra.Command{
@@ -29,7 +29,7 @@ func init() {
2929
if len(args) == 2 {
3030
todoID, _ := strconv.Atoi(args[0])
3131
noteID, _ := strconv.Atoi(args[1])
32-
ultodo.NewApp().DeleteNote(todoID, noteID)
32+
redovc.NewApp().DeleteNote(todoID, noteID)
3333
} else {
3434
fmt.Printf("todoID and noteID not specified\n")
3535
}

0 commit comments

Comments
 (0)