= Install To install !RefactorErl you can use the referl script located in the bin directory of the release. Unzip the release and type the following command: {{{bin/referl -build tool}}} System requirements: [wiki:Install Install page] Build configuration options: [http://pnyf.inf.elte.hu/trac/refactorerl/wiki/StartUp#Options Parameters of the referl script ] = Starting the tool To start the tool with the default config use: {{{bin/referl}}}. This will store the source code representation in a Mnesia database. However, to decrease memory footprint and speed up the tool you may want to use the Kyoto Cabinet backend of !RefactorErl: {{{bin/referl -db kcmini}}} For further options please check the [wiki:StartUp StartUp page] = Interfaces: ri, web RefactorErl provides several [http://pnyf.inf.elte.hu/trac/refactorerl/wiki/WikiStart#Userinterfaces user interfaces]. The [http://pnyf.inf.elte.hu/trac/refactorerl/wiki/ErlangShellInterface interactive Erlang shell interface] -- {{{ri}}} -- gives you a simple command (function call) based usage. To ask help about the parameters of the function you can use the helper functions, such as {{{ri:h()}}} or {{{ri:*_h()}}}. If you successfully installed Yaws to your machine, you can use the [http://pnyf.inf.elte.hu/trac/refactorerl/wiki/Web2 web interface] of the tool as well. When you compile the tool you have to provide the path to the YAWS' {{{ebin}}} directory: {{{bin/referl -build tool -yaws_path path_to_yaws_ebin}}} When starting the web interface with {{{ri:start_web2/1}}}, you have to [http://pnyf.inf.elte.hu/trac/refactorerl/wiki/Web2#Startup:RefactorErlshell configure] the webserver. Without configuration, the webserver will be started at {{{localhost:8001}}} = Building a database For a first time user, we suggest using the {{{ri}}} interface to build the database of !RefactorErl from the source code. There are several options to analyse the source files. For details see [wiki:ManagingFiles the file management page]. Here we discuss some basic scenarios. You can add files using the {{{ri:add/*}}} functions. To add a single module just provide the path to the file as an argument: {{{ri:add("path_to_file")}}} The same command can be used to add directories recursievely: {{{ri:add("path_to_dir")}}} If your included files are located in a separate directory, please add them as an include environment> {{{ri:addenv(include, "path_to_include_dir")}}} If your software follows the Erlang application hierarchy and you have a library of your software. * Add the path to the application libarary as an environment variable: {{{ri:addenv(appbase, "path_to_my_lib")}}} * Add the files using a subkey of the application base path and the name of the application> {{{ri:add(my_lib, my_application)}}} * This mode helps !RefactorErl to find the include files in the appropriate include folders. = Using the web interface = Using the query language = Dependency analysis = Code duplicates