Hi,
it is just theoretical because I never set up fossil, but I see several
issues in Your config:
1. in yaws.conf place ErlangWeb appmod in a front of rest of them
2. place all fossil files in docroot (lets say in docroot/fossil)
3. dispatcher should return then {static, "^/fossil", enoent}
4. code from docroot should be executed
In case You would like to have some authorisation (or similar action before
serving content) :
1. write a controller to handle authorisation (lets give it a name c_fossil)
2. in case of yaws return from controller one of :
{custom, {page, "/" ++ wpart:fget("__path")}} %% <-- so the same
place
or
{template, "docroot/fossil/some_index.html"} %% <-- so it goes via
out templating engine
3. dispatcher differs here:
{dynamic, "^/fosill", {c_fossil, read}}
4. last but not least:
4.1 in case of {template.. } be careful with dispatcher rules and
docroot (remember that static rules are matched in the first place)
4.2 in case of {custom.. } while the rule is dynamic it actually returns
path /app/fossil/ (because of appmod) so You need to do symlink in docroot
to the fossil directory. So, it fossil is placed in docroot/fossil then we
need app/ directory in docroot and inside of that link to fossil dir
{page.. } and 4.2 are not officialy supported ;) but it is good to know this
is possible
br
Michal Z
2009/9/1 Michael McDaniel <erlang...@autosys.us>
>
> Hi, List.
>
> I want to run *.yaws and *.cgi files via erlang-web.
>
> Well, actually, I want to be able to serve fossil
> [http://fossil-scm.org] repositories from within
> erlang-web (using yaws as backend), I'm not particularly
> stuck on using *.yaws and *.cgi though that is how I ran
> fossil using yaws alone.
>
>
> If I am only running yaws then I can do, e.g. the following
> to display (and work with) a fossil repository :
>
> /usr/local/etc/yaws/yaws.conf
>
> ...
>
> <server localhost>
>
> port = 80
> listen = 127.0.0.1
> docroot = /usr/local/var/yaws/www
>
> appmods = <cgi-bin, yaws_appmod_cgi>
>
> </server>
> ---
>
> /usr/local/var/yaws/www/block_clone.yaws
>
>
> <erl>
>
> out(Arg) ->
>
> yaws_cgi:call_cgi(Arg,
> "/usr/local/var/yaws/www/cgi-bin/block_clone.cgi").
>
> </erl>
>
> ---
>
> /usr/local/var/yaws/www/cgi-bin/block_clone.cgi
>
>
> #!/usr/local/bin/fossil
> repository: /tmp/cloned_repositories/block_clone.fossil
>
> --
>
>
> and, when pointing browser at
>
> http://localhost/block_clone.yaws/
>
> I get the fossil index page, and all the links work.
>
> ---
>
> and, for Erlang Web, I have tried various combinations
> of, e.g.
>
>
> templates/fossil.html
>
>
> <?xml version="1.0" encoding="utf-8"?>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml">
>
> <head>
> <title>Fossil repositories</title>
>
> <script src="cgi/foo.cgi" type="text/html"> </script>
> </head>
> </html>
>
>
> ^^^^^^^^^^^^^
> also changed this to "fossil.yaws"
> which calls the cgi file
>
> The cgi file is executable. The repository is readable.
> The cgi directory is a subdirectory of templates directory.
>
>
> So, how can I serve fossil repositories via erlang-web whether
> with *.yaws and cgi or not. Of course, using yaws as the
> backend web server for Erlang Web.
>
>
>
> I tried similar configuration and various combinations
> in dispatch.conf, e.g. {static, "^/fossil$", "fossil.yaws"}.
> but the best I can get is no error and a blank page in
> the browser.
>
> Please if you have a suggestion (especially one you have
> used successfully) to run *.yaws and *.cgi within
> Erlang Web, please provide it.
>
> If there is online documentation I have not found it so
> a pointer to docs which may help out would be appreciated
> as well.
>
>
> Also, the above is the simplest case of delivering a single
> fossil repository. I actually plan to provide multiple
> repositories (which I have done using yaws only) as described here,
> http://www.fossil-scm.org/index.html/wiki?name=Cookbook#CGI
>
>
> I think I am missing something basic because even a simple
> hello.cgi gives a blank page
>
> #!/bin/bash
> echo "hello"
>
>
>
> ~Michael
>
>
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
> trial. Simplify your report design, integration and deployment - and focus
> on
> what you do best, core application coding. Discover what's new with
> Crystal Reports now. http://p.sf.net/sfu/bobj-july
> _______________________________________________
> Erlangweb-users mailing list
> Erlangweb-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/erlangweb-users
> http://www.erlang-web.org/
>
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Erlangweb-users mailing list
Erlangweb-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/erlangweb-users
http://www.erlang-web.org/