GitXplorerGitXplorer
j

igo

public
9 stars
1 forks
0 issues

Commits

List of commits on branch master.
Unverified
7c438fa57413f75a32a90a16123bd2e186db6d8f

Merge

ddroundy committed 15 years ago
Unverified
e293e3c5ce324caddd943ca08d6bc115371bd25e

fix compile error?

ddroundy committed 15 years ago
Unverified
83e4d0f8e5eeb0eff5f0fb230af3f19149244dc1

add a .gitignore file.

ddroundy committed 15 years ago
Unverified
1bef16f9557978941705393b4c14353498f0287b

Added support for other architectures besides amd64.

jjacobsa committed 15 years ago
Unverified
6c65ecbccbbd7f041e2064fdd5074e6c77613084

Fixed a bug and added support for running tests.

jjacobsa committed 15 years ago
Unverified
56b75fb8074d9496500e9386c1a34f1614705364

Added support for building a test runner.

jjacobsa committed 15 years ago

README

The README file for this repository.

igo is an attempt to created a zero-configuration build system for Go. You structure your project as multiple packages in multiple sub-directories, and can build and test all or part of the project with a single command, without makefiles.

For example, consider the following directory structure:

foo/
    foo1.go  (package foo)
    foo2.go  (package foo)

    foo1_test.go
    foo2_test.go

bar/
    bar.go  (package bar)
    bar_test.go

    baz/
        qwerty.go  (package bar/baz)
        qwerty_test.go

driver1/
    driver1.go (package main)

driver2/
    driver2.go (package main)

Assume that the packages have these imports:

foo:
    import "fmt"
    import "http"

bar:
    import "./bar/baz"
    import "./foo"
    import "http"

baz:
    import "./foo"

driver1:
    import "./bar"
    import "./foo"

Then the igo commands below will perform the following actions:

igo build foo
(Build foo1.go and foo2.go)

igo build bar
(Build foo, then build bar/baz, then build bar.go)

igo build bar/baz
(Build foo, then build qwerty.go)

igo test foo
(Build foo as above, then build and run foo*_test.go)

igo build driver1
(Build foo, then build bar, then build and link driver1.go)

igo run driver1
(Build driver1 as above, then run it)

Dependencies are derived purely from imports within .go files, and no makefiles are required.