Some Haskell projects, such as Gitit, dynamically load Haskell modules which implement plugins. ClaferWiki is one such a plugin for Gitit. To have Gitit load the ClaferWiki plugin, one must specify the following in the
gitit.cnf fileplugins: Network.Gitit.Plugin.ClaferWikiGitit will then search for the module ClaferWiki in the user and global package registries. However, when the plugin is installed in a Cabal sandbox, it will not be found.UPDATE (Feb 10, 2015): the
claferwiki.sh script now provides an option --sandbox.Gitit is normally run using the command
gitit -f gitit.cnfIn order to make the cabal sandbox visible to Gitit, it must be started in the sandbox environment using the command cabal exec (you'll need cabal install >= 1.20) as follows:cabal exec gitit -- -f gitit.cnfThis command must be executed in a directory (or a child of thereof) which contains the file cabal.sandbox.config, which points to the location of the sandbox. The -- delimiter indicates the beginning of the target command arguments. Any arguments for cabal exec itself must be provided before the -- delimiter.NOTE: The examples below show a simplified process for Linux only. For instructions for other platforms and about installing the dependencies (GLPK, etc.), see the README.
Example: installing ClaferWiki from Hackage and running it from a Cabal sandbox
This shows the fully manual process. In some folder of your choice, e.g.,
mywiki, execute the following:
cd mywiki
cabal update
cabal sandbox init
cabal install claferwiki
Then create a default Gitit configuration file: gitit --print-default-config > gitit.cnfIn the config file modify the port number and specify the plugins as follows:port: 8091
plugins: Network.Gitit.Plugin.ClaferWikiFinally run the wiki:
cabal exec gitit -- -f gitit.cnf
Note: to use the CSS for clafer, you must add the following line to the file
static/css/custom.css:
@import url("clafer.css"); /* for syntax highlighting for Clafer */
Example: building ClaferWiki from source and running it from a Cabal sandbox
Using this process you'll get a customized Gitit with the Clafer logo and the help page such as the Clafer Model Wiki.
git clone http://github.com/gsdlab/claferwiki
cd claferwiki
make init
cabal installHere, make init creates a sandbox in ../.clafertools-cabal-sandbox/ and installs all dependencies, including Clafer, from Hackage.At this point, we're ready to create a live ClaferWiki instance, for example, in a folder
mywiki: make install to=mywikiThis command copies the preconfigured gitit.cnf file, Clafer logo, and preloads the wiki with some initial content, including the help page. We can then run it as described before:
cd mywiki
cabal exec gitit -- -f gitit.cnf
If the wiki starts up correctly (see http://localhost:8091), it can be run it in background under nohup as follows:nohup "cabal exec gitit -- -f gitit.cnf" &Note: The above assumes that the folder mywiki is a child of the claferwiki and because of that the sandbox will be found. Otherwise, when installing to a different location, e.g., a folder ~/mywiki, the sandbox must be initialized to point to the existing sandbox where gitit and ClaferWiki (e.g., assume folder ~/.clafertools-cabal-sandbox/) were installed as follows:
cd mywiki
cabal sandbox init --sandbox=~/.clafertools-cabal-sandbox
cabal exec gitit -- -f gitit.cnf
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.