Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit d40883a

Browse files
piq9117Gitea
piq9117
authored and
Gitea
committed
refactory: directory generation operation (#21)
- directory generation operation was repeated in ever directory generating function. Operation moved to a utility function.
1 parent d9ad9a3 commit d40883a

File tree

2 files changed

+29
-32
lines changed

2 files changed

+29
-32
lines changed

‎src/UmuReactBasic/Capability/Command.hs

Lines changed: 12 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
{-# LANGUAGE ScopedTypeVariables #-}
21
module UmuReactBasic.Capability.Command
32
( ManageCommand (..)
43
, generateProj
@@ -68,52 +67,33 @@ writeInitialDir loc = do
6867
<> " will continue to generate to that directory..."
6968

7069
writeSrcDir :: ( MonadIO m, LogMessage m ) => Maybe Text -> m ()
71-
writeSrcDir mLoc = do
72-
res <- liftIO
73-
$ tryJust ( guard . isAlreadyExistsError )
74-
$ TP.mkdir ( Turtle.fromText $ mkPathName mLoc dirName )
75-
either
76-
( const $ logError $ dirName <> " directory already exists!" )
77-
( const $ logInfo $ "Generating " <> dirName <> "..." )
78-
res
70+
writeSrcDir mPathInput = do
71+
res <- isDirGenerated mPathInput dirName
72+
dirResHandler dirName res
7973
where
8074
dirName :: Text
8175
dirName = "src"
8276

83-
8477
writeAssetsDir :: ( MonadIO m, LogMessage m ) => Maybe Text -> m ()
85-
writeAssetsDir mLoc = do
86-
res <- liftIO
87-
$ tryJust ( guard . isAlreadyExistsError )
88-
$ TP.mkdir ( Turtle.fromText $ mkPathName mLoc dirName )
89-
either
90-
( const $ logError $ dirName <> " directory already exists!" )
91-
( const $ logInfo $ "Generating " <> dirName <> "..." )
92-
res
78+
writeAssetsDir mPathInput = do
79+
res <- isDirGenerated mPathInput dirName
80+
dirResHandler dirName res
9381
where
9482
dirName :: Text
9583
dirName = "assets"
9684

9785
writeComponentDir :: ( MonadIO m, LogMessage m ) => Maybe Text -> m ()
98-
writeComponentDir mLoc = do
99-
res <- liftIO
100-
$ tryJust ( guard . isAlreadyExistsError )
101-
$ TP.mkdir ( Turtle.fromText $ mkPathName mLoc dirName )
102-
either
103-
( const $ logError $ dirName <> " directory already exists!" )
104-
( const $ logInfo $ "Generating " <> dirName <> "..." )
105-
res
86+
writeComponentDir mPathInput = do
87+
res <- isDirGenerated mPathInput dirName
88+
dirResHandler dirName res
10689
where
10790
dirName :: Text
10891
dirName = "src/Component"
10992

11093
writeTestDir :: ( MonadIO m, LogMessage m ) => Maybe Text -> m ()
111-
writeTestDir mLoc = do
112-
res <- liftIO $ tryJust (guard . isAlreadyExistsError) $ TP.mkdir ( Turtle.fromText $ mkPathName mLoc dirName )
113-
either
114-
( const $ logError $ dirName <> " directory already exists!")
115-
( const $ logInfo $ "Generating " <> dirName <> "...")
116-
res
94+
writeTestDir mPathInput = do
95+
res <- isDirGenerated mPathInput dirName
96+
dirResHandler dirName res
11797
where
11898
dirName :: Text
11999
dirName = "test"

‎src/UmuReactBasic/Util.hs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ module UmuReactBasic.Util
22
( mkPathName
33
, generateWhenFileNotExists
44
, isFileExists
5+
, isDirGenerated
6+
, dirResHandler
57
) where
68

79
import Import
@@ -34,3 +36,18 @@ generateFile :: ( MonadIO m, LogMessage m ) => Maybe Text -> Text -> Text -> m (
3436
generateFile mPathInput filePath file = do
3537
liftIO $ TP.writeTextFile ( Turtle.fromText $ mkPathName mPathInput filePath ) file
3638
logInfo ( "Generated " <> filePath )
39+
40+
-- Right is considered the success case here, and means the directory was
41+
-- created. Left will be the error.
42+
-- TODO: This needs to be refactored coz ( Either () () ) doesn't make no damn
43+
-- sense but this will do for now.
44+
isDirGenerated :: MonadIO m => Maybe Text -> Text -> m ( Either () () )
45+
isDirGenerated mPathInput dirName = liftIO
46+
$ tryJust ( guard . isAlreadyExistsError )
47+
$ TP.mkdir ( Turtle.fromText $ mkPathName mPathInput dirName )
48+
49+
dirResHandler :: ( MonadIO m, LogMessage m ) => Text -> Either () () -> m ()
50+
dirResHandler dirName res = either
51+
( const $ logError $ dirName <> " directory already exists!" )
52+
( const $ logInfo $ "Generated " <> dirName )
53+
res

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /