gonzui

DESCRIPTION:

gonzui is a source code search engine for accelerating open source software development. In the open source software development, programmers frequently refer to source codes written by others. Our goal is to help programmers develop programs effectively by creating a source code search engine that covers vast quantities of open source codes available on the Internet.

FEATURES/PROBLEMS:

  • Windows is not supported now.

SYNOPSIS:

Basic Usage

First, You need to import source codes into an index. For example, if you want to import the source codes of wget-1.9.1.tar.gz, run the following command.

% gonzui-import wget-1.9.1.tar.gz

or if your system has apt-get and it’s configured correctly,

% gonzui-import --apt wget

Then, you can run gonzui-server that works as a web-based search engine.

% gonzui-server

Finally, you can access the search engine with your browser. The URL is localhost:46984/.

Import through version control systems

Currently, gonzui supports import from CVS and Subversion, Git’s repositories. For example, if you want to import source codes that can be obtained by the following command,

% cvs -d :pserver:[email protected]:/src co ruby

you can just run gonzui-import as follows.

% gonzui-import --cvs :pserver:[email protected]:/src ruby

In short, you can replace “cvs -d X co Y” with “gonzui-import –cvs X Y”.

For Subversion, if you want to import source codes that can be obtained by the following command,

% svn co http://svn.edgewall.com/repos/trac/trunk trac

you can just run gonzui-import as follows.

% gonzui-import --svn http://svn.edgewall.com/repos/trac/trunk trac

In short, you can replace “svn co X Y” with “gonzui-import –svn X Y”.

You can update the gonzui’s index by gonzui-update command to reflect changes as described bellow.

Currently, gonzui doesn’t support revisions and tags of CVS and Subversion.

Incremental Update

gonzui-update is a tool for doing incremental update of the existing indices. For example, if you build an index by importing /somewhere/foo by the following command:

% gonzui-import /somewhere/foo

and then, you want to update the existing index for reflecting recent changes (addition, deletion, and update of files) in /somewhere/foo, you can just run gonzui-update like:

% gonzui-update

Since the index includes the location of /somewhere/foo, you don’t have to give any parameters to gonzui-update command. If the existing index contains two or more packages, all packages are supposed to be updated. If /somewhere/foo is disappeared, gonzui-update prints an warning like “source disappeared”.

Other Usage

Command-line-based search tool is also available mainly for debug purposes. To find locations of “main” function, run gonzui-search as follows.

% gonzui-search main

You can inspect gonzui’s index using gonzui-db command. To obtain the list of packages in the index, run gonzui-db as follows.

% gonzui-db --list

To remove wget-1.9.1, run gonzui-remove as follows.

% gonzui-remove wget-1.9.1

For further information on usage, try –help option of each command.

REQUIREMENTS:

  • Ruby 1.8.2+

  • bdb 4.2+ (Berkeley DB)

$ sudo apt-get install libdb-dev

Ruby Libraries

  • langscan 1.2+

$ sudo gem install langscan
  • bdb for Ruby 0.5.2+

$ sudo apt-get install libdb-ruby1.8

Optional Software

The following software is not required but useful.

  • Archive Handling

    • tar (.tar.*)

    • gunzip (.tar.gz)

    • bunzip2 (.tar.bz2)

    • uncompress (.tar.Z)

    • unzip (.zip)

    • lha (.lzh)

    • rpm, rpmbuild (.src.rpm)

  • Source Code Fetcher

    • apt-get (gonzui-import –apt)

      • You need “dpkg-dev” package to fetch sources.

  • Version Control Systems

    • cvs (gonzui-import –cvs)

    • svn (gonzui-import –svn)

    • git (gonzui-import –git)

INSTALL:

$ sudo gem install gonzui

If you use Ubuntu, add following path to $PATH

/usr/lib/gems/1.8/bin

LICENSE:

Copyright © 2004-2005 Satoru Takabayashi <[email protected]>

All rights reserved.

This is free software with ABSOLUTELY NO WARRANTY.

You can redistribute it and/or modify it under the terms of the GNU General Public License version 2.

AUTHORS:

see ‘AUTHORS.txt’