copy copies everything from dist, not just specified modules

This was problematic when copying only a module and not its dependents.
This commit is contained in:
John J. Camilleri
2018-08-05 17:22:46 +02:00
parent 59672ef8ac
commit e44ab11609
2 changed files with 11 additions and 12 deletions

18
Make.hs
View File

@@ -31,21 +31,21 @@ buildRGL args = do
info <- mkInfo info <- mkInfo
mapM_ (\cmd -> cmdAction cmd modes args info) cmds mapM_ (\cmd -> cmdAction cmd modes args info) cmds
-- | Copy from dist to install location -- | Copy everything from dist to install location
copyRGL :: [String] -> IO () copyRGL :: [String] -> IO ()
copyRGL args = do copyRGL args = do
let modes = getOptMode args let modes = getOptMode args
info <- mkInfo info <- mkInfo
gf_lib_dir <- maybe (die errLocation) return (infoInstallDir info) gf_lib_dir <- maybe (die errLocation) return (infoInstallDir info)
let files = getOptModules args -- let files = getOptModules args
if not (null files) -- if not (null files)
then do -- then do
-- Copy single files -- -- Copy single files
sequence_ [copyOne (flip addExtension "gfo" . dropExtension . takeFileName $ file) (getRGLBuildDir info mode) (gf_lib_dir </> getRGLBuildSubDir mode)|file<-files, mode<-modes] -- sequence_ [copyOne (flip addExtension "gfo" . dropExtension . takeFileName $ file) (getRGLBuildDir info mode) (gf_lib_dir </> getRGLBuildSubDir mode)|file<-files, mode<-modes]
else do -- else do
-- Copy everything -- Copy everything
copyAll "prelude" (infoBuildDir info </> "prelude") (gf_lib_dir </> "prelude") copyAll "prelude" (infoBuildDir info </> "prelude") (gf_lib_dir </> "prelude")
sequence_ [copyAll (show mode) (getRGLBuildDir info mode) (gf_lib_dir </> getRGLBuildSubDir mode)|mode<-modes] sequence_ [copyAll (show mode) (getRGLBuildDir info mode) (gf_lib_dir </> getRGLBuildSubDir mode)|mode<-modes]
-- | Error message when install location cannot be determined -- | Error message when install location cannot be determined
errLocation :: String errLocation :: String

View File

@@ -51,7 +51,7 @@ runghc Make.hs ...
Where `...` is one of: Where `...` is one of:
``` ```
build [CMDS] [MODE] [--langs=[+|-]LANG,LANG,...] [--gf=...] build [CMDS] [MODE] [--langs=[+|-]LANG,LANG,...] [--gf=...]
copy [FILES] [MODE] [--dest=...] copy [MODE] [--dest=...]
install [CMDS] [MODE] [--langs=[+|-]LANG,LANG,...] [--gf=...] [--dest=...] install [CMDS] [MODE] [--langs=[+|-]LANG,LANG,...] [--gf=...] [--dest=...]
clean clean
``` ```
@@ -64,12 +64,11 @@ clean
`compat`, `compat`,
<!-- `pgf`, --> <!-- `pgf`, -->
`parse`, `parse`,
or an explicit module name (e.g. `ExtraEng.gf`). or an explicit module name (e.g. `ExtraEng.gf`. You don't need to specify to language subdirectory, but there is a restriction that the module must exist in a **direct** subdirectory of `src`).
- `MODE` is one of: - `MODE` is one of:
`present`, `present`,
`alltenses` `alltenses`
(default is both). (default is both).
- `FILES` is a space separated list of module names (e.g. `ExtraEng.gf DictGer.gf`)
- You can _override_ the default language list with `--langs=...` - You can _override_ the default language list with `--langs=...`
- You can _add_ languages to the default list with `--langs=+...` - You can _add_ languages to the default list with `--langs=+...`
- You can _remove_ languages from the default list with `langs=-...` - You can _remove_ languages from the default list with `langs=-...`