scaffold.hs checks for valid entries
This commit is contained in:
parent
3afd3cff39
commit
2d6ef1f954
23
scaffold.hs
23
scaffold.hs
@ -18,6 +18,15 @@ qq = ""
|
|||||||
qq = "$"
|
qq = "$"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
prompt :: (String -> Bool) -> IO String
|
||||||
|
prompt f = do
|
||||||
|
s <- getLine
|
||||||
|
if f s
|
||||||
|
then return s
|
||||||
|
else do
|
||||||
|
putStrLn "That was not a valid entry, please try again: "
|
||||||
|
prompt f
|
||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = do
|
main = do
|
||||||
putStr $(codegen "welcome")
|
putStr $(codegen "welcome")
|
||||||
@ -26,7 +35,14 @@ main = do
|
|||||||
|
|
||||||
putStr $(codegen "project-name")
|
putStr $(codegen "project-name")
|
||||||
hFlush stdout
|
hFlush stdout
|
||||||
project <- getLine
|
let validPN c
|
||||||
|
| 'A' <= c && c <= 'Z' = True
|
||||||
|
| 'a' <= c && c <= 'z' = True
|
||||||
|
| '0' <= c && c <= '9' = True
|
||||||
|
validPN '-' = True
|
||||||
|
validPN '_' = True
|
||||||
|
validPN _ = False
|
||||||
|
project <- prompt $ all validPN
|
||||||
|
|
||||||
putStr $(codegen "dir-name")
|
putStr $(codegen "dir-name")
|
||||||
hFlush stdout
|
hFlush stdout
|
||||||
@ -35,11 +51,12 @@ main = do
|
|||||||
|
|
||||||
putStr $(codegen "site-arg")
|
putStr $(codegen "site-arg")
|
||||||
hFlush stdout
|
hFlush stdout
|
||||||
sitearg <- getLine
|
let isUpperAZ c = 'A' <= c && c <= 'Z'
|
||||||
|
sitearg <- prompt $ \s -> not (null s) && all validPN s && isUpperAZ (head s)
|
||||||
|
|
||||||
putStr $(codegen "database")
|
putStr $(codegen "database")
|
||||||
hFlush stdout
|
hFlush stdout
|
||||||
backendS <- getLine
|
backendS <- prompt $ flip elem ["s", "p"]
|
||||||
let pconn1 = $(codegen "pconn1")
|
let pconn1 = $(codegen "pconn1")
|
||||||
let pconn2 = $(codegen "pconn2")
|
let pconn2 = $(codegen "pconn2")
|
||||||
let (lower, upper, connstr1, connstr2) =
|
let (lower, upper, connstr1, connstr2) =
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user