# webtool

### MODULE

webtool

### MODULE SUMMARY

WebTool is a tool used to simplify the implementation of web based tools with Erlang/OTP.

### DESCRIPTION

WebTool makes it easy to use web based tools with Erlang/OTP. WebTool configures and starts the webserver httpd.

### EXPORTS

`start()-> {ok,Pid}| {stop,Reason}`

Start WebTool with default data, i.e. port 8888, ip-number 127.0.0.1, and server-name `localhost`. The `mime.types` file and WebTool's own HTML files are assumed to be in the directory `webtool-<vsn>/priv`.

`start(Path,Data)->{ok,Pid}|{stop,Reason}`

Types:

`Path = string() | standard_path`
`Data = [Port,Address,Name] | PortNumber | standard_data`
`Port = {port,PortNumber}`
`Address = {bind_address,IpNumber}`
`Name = {server_name,ServerName}`
`PortNumber = integer()`
`IpNumber = tuple(), e.g. {127,0,0,1}`
`ServerName = string()`
`Pid = pid()`

Use this function to start WebTool if the default port, ip-number,servername or path can not be used.

`Path` is the directory where the `mime.types` file and WebTool's own HTML files are located. By default this is `webtool-<vsn>/priv`, and in most cases there is no need to change this. If `Path` is set to `standard_path` the default will be used.

If `Data` is set to `PortNumber`, the ip-number and server name will be retreived by calling `inet:gethostname/0` and `inet:getaddr/2`.

`stop()->void`

Stop WebTool and the tools started by WebTool.

### CALLBACK FUNCTIONS

The following callback function must be implemented by each web based tool that will be used via WebTool. When started, WebTool searches the Erlang code path for *.tool files to locate all web based tools and their callback functions. See the WebTool User's Guide for more information about the *.tool files.

### EXPORTS

`Module:Func(Data)-> {Name,WebData}|error`

Types:

`Data = term()`
`Name = atom()`
`WebData = [WebOptions]`
`WebOptions = LinkData | Alias | Start`
`LinkData = {web_data,{ToolName,Url}}`
`Alias = {alias,{VirtualPath,RealPath}} | {alias,{erl_alias,Path,[Modules]}`
`Start = {start,StartData}`
`ToolName = Url = VirtualPath = RealPath = Path = string()`
`Modules = atom()`
`StartData = AppData | ChildSpec | Func`
`AppData = {app,AppName}`
`ChildSpec = {child,child_spec()}`

See the Reference Manual for the module supervisor in the STDLIB application for details about child_spec().

`Func = {func,{StartMod,StartFunc,StartArg}, {StopMod,StopFunc,StopArg}}`
`AppName = StartMod = StartFunc = StopMod = StopFunc =atom()`
`StartArg = StopArg = [term()]`

This is the configuration function (`config_func`) which must be stated in the `*.tool` file.

The function is called by WebTool at startup to retrieve the data needed to start and configure the tool. `LinkData` is used by WebTool to create the link to the tool. `Alias` is used to create the aliases needed by the webserver. `Start` is used to start and stop the tool.

### See Also

start_webtool(1), WebTool User's Guide

### AUTHORS

Martin Gustafsson - support@erlang.ericsson.se

webtool 0.8.1
Copyright © 1991-2003 Ericsson Utvecklings AB