51 lines
1.1 KiB
Go
51 lines
1.1 KiB
Go
package bundle
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/metrue/fx/bundler"
|
|
"github.com/metrue/fx/bundler/crystal"
|
|
"github.com/metrue/fx/bundler/d"
|
|
golang "github.com/metrue/fx/bundler/go"
|
|
"github.com/metrue/fx/bundler/java"
|
|
"github.com/metrue/fx/bundler/julia"
|
|
"github.com/metrue/fx/bundler/node"
|
|
"github.com/metrue/fx/bundler/perl"
|
|
"github.com/metrue/fx/bundler/php"
|
|
"github.com/metrue/fx/bundler/python"
|
|
"github.com/metrue/fx/bundler/ruby"
|
|
"github.com/metrue/fx/bundler/rust"
|
|
)
|
|
|
|
// Bundle function to project
|
|
func Bundle(workdir string, language string, fn string, deps ...string) error {
|
|
var bundler bundler.Bundler
|
|
switch language {
|
|
case "d":
|
|
bundler = d.New()
|
|
case "node":
|
|
bundler = node.New()
|
|
case "go":
|
|
bundler = golang.New()
|
|
case "java":
|
|
bundler = java.New()
|
|
case "julia":
|
|
bundler = julia.New()
|
|
case "perl":
|
|
bundler = perl.New()
|
|
case "python":
|
|
bundler = python.New()
|
|
case "ruby":
|
|
bundler = ruby.New()
|
|
case "rust":
|
|
bundler = rust.New()
|
|
case "crystal":
|
|
bundler = crystal.New()
|
|
case "php":
|
|
bundler = php.New()
|
|
default:
|
|
return fmt.Errorf("%s not suppported yet", language)
|
|
}
|
|
return bundler.Bundle(workdir, fn, deps...)
|
|
}
|