Add some more functionality
This commit is contained in:
		
							
								
								
									
										19
									
								
								task.go
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								task.go
									
									
									
									
									
								
							| @@ -48,6 +48,7 @@ type Task struct { | ||||
| // Contexts, Projects, Tags | ||||
| // | ||||
| // For example: | ||||
| // | ||||
| //	"(A) 2013-07-23 Call Dad @Home @Phone +Family due:2013-07-31 customTag1:Important!" | ||||
| func (task Task) String() string { | ||||
| 	var text string | ||||
| @@ -270,3 +271,21 @@ func (task *Task) Due() time.Duration { | ||||
| 	} | ||||
| 	return task.DueDate.Sub(time.Now()) | ||||
| } | ||||
|  | ||||
| func (task *Task) HasContext(ctx string) bool { | ||||
| 	for _, c := range task.Contexts { | ||||
| 		if c == ctx { | ||||
| 			return true | ||||
| 		} | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| func (task *Task) HasProject(proj string) bool { | ||||
| 	for _, p := range task.Projects { | ||||
| 		if p == proj { | ||||
| 			return true | ||||
| 		} | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
|   | ||||
							
								
								
									
										13
									
								
								todotxt.go
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								todotxt.go
									
									
									
									
									
								
							| @@ -183,6 +183,19 @@ func (tasklist *TaskList) WriteToFilename(filename string) error { | ||||
| 	return ioutil.WriteFile(filename, []byte(tasklist.String()), 0640) | ||||
| } | ||||
|  | ||||
| func (tasklist *TaskList) ArchiveTaskToFile(task Task, filename string) error { | ||||
| 	if err := tasklist.RemoveTask(task); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	f, err := os.OpenFile(filename, os.O_APPEND|os.O_WRONLY, 0600) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	defer f.Close() | ||||
| 	_, err = f.WriteString(task.String() + "\n") | ||||
| 	return err | ||||
| } | ||||
|  | ||||
| // LoadFromFile loads and returns a TaskList from *os.File. | ||||
| // | ||||
| // Using *os.File instead of a filename allows to also use os.Stdin. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user