summaryrefslogtreecommitdiff
path: root/rmtodo.hs
diff options
context:
space:
mode:
Diffstat (limited to 'rmtodo.hs')
-rw-r--r--rmtodo.hs21
1 files changed, 21 insertions, 0 deletions
diff --git a/rmtodo.hs b/rmtodo.hs
new file mode 100644
index 0000000..2507d86
--- /dev/null
+++ b/rmtodo.hs
@@ -0,0 +1,21 @@
+import System.IO
+import System.Directory
+import Data.List
+
+main = do
+ handle <- openFile "todo.txt" ReadMode
+ (tempName, tempHandle) <- openTempFile "." "temp"
+ contents <- hGetContents handle
+ let todoTasks = lines contents
+ numberedTasks = zipWith (\n line -> show n ++ " - " ++ line) [0..] todoTasks
+ putStrLn "These are your TO-DO items:"
+ putStr $ unlines numberedTasks
+ putStrLn "Which one do you want to delete?"
+ numberString <- getLine
+ let number = read numberString
+ newTodoItems = delete (todoTasks !! number) todoTasks
+ hPutStr tempHandle $ unlines newTodoItems
+ hClose handle
+ hClose tempHandle
+ removeFile "todo.txt"
+ renameFile tempName "todo.txt"