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