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. If port 8888 is in use, port 8889 is tried instead. If 8889 is also in use, 8890 is tried and so on. Max number of ports tried is 256.

The mime.types file and WebTool's own HTML files are assumed to be in the directory webtool-<vsn>/priv/root/conf.

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 default data will be used for ip-number (127.0.0.1) and server name (localhost).

stop()->void

Stop WebTool and the tools started by WebTool.

debug_app(Module)->void

Types:

Module = atom()

Debug a WebTool application by tracing all functions in the given module which are called from WebTool.

stop_debug()->void

Stop the tracing started by debug_app/1, and format the trace log.

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