we will not implement citation yet
[hdata.git] / src / Tools / Operation.hs
blob44607a950d6b6d1d3e8dc8d4d5f056226474a877
1 {-
2 Tools/Operation.hs
4 Copyright 2013 Louis-Guillaume Gagnon <louis.guillaume.gagnon@gmail.com>
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
20 module Tools.Operation (
21 Operation (..),
22 isHelp,
23 parseArg,
24 usage
25 ) where
27 import Database.HDBC
28 import Database.HDBC.Sqlite3
29 import System.Environment
31 data Operation = Add
32 | Bookmark
33 | Help
34 | Modify
35 | Remove
36 | Search
37 | View
38 | Version
39 deriving (Show)
41 isHelp :: String -> Bool
42 isHelp str = str `elem` ["-h","help","--help"]
44 parseArg :: String -> Either String Operation
45 parseArg op = case op of
46 "add" -> Right Add
47 "bookmark" -> Right Bookmark
48 "help" -> Right Help
49 "-h" -> Right Help
50 "--help" -> Right Help
51 "modify" -> Right Modify
52 "remove" -> Right Remove
53 "search" -> Right Search
54 "view" -> Right View
55 "version" -> Right Version
56 _ -> Left $ "Invalid argument: " ++ op
58 usage :: Operation -> String
59 usage op = show op ++ " not yet implemented"