/
perlmod.go
67 lines (50 loc) · 1.28 KB
/
perlmod.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package buildercollection
import (
"os/exec"
"github.com/AnimusPEXUS/aipsetup/basictypes"
"github.com/AnimusPEXUS/utils/logger"
)
func init() {
Index["perlmod"] = func(bs basictypes.BuildingSiteCtlI) (basictypes.BuilderI, error) {
return NewBuilder_perlmod(bs), nil
}
}
type Builder_perlmod struct {
*Builder_std
}
func NewBuilder_perlmod(bs basictypes.BuildingSiteCtlI) *Builder_perlmod {
self := new(Builder_perlmod)
self.Builder_std = NewBuilder_std(bs)
self.EditActionsCB = self.EditActions
return self
}
func (self *Builder_perlmod) EditActions(ret basictypes.BuilderActions) (basictypes.BuilderActions, error) {
ret = ret.Remove("autogen")
err := ret.Replace(
"configure",
&basictypes.BuilderAction{
Name: "configure",
Callable: self.BuilderActionConfigure,
},
)
if err != nil {
return nil, err
}
return ret, nil
}
func (self *Builder_perlmod) BuilderActionConfigure(log *logger.Logger) error {
perl, err := self.GetBuildingSiteCtl().GetBuildingSiteValuesCalculator().
CalculateInstallPrefixExecutable("perl")
if err != nil {
return err
}
c := exec.Command(perl, "Makefile.PL")
c.Stdout = log.StdoutLbl()
c.Stderr = log.StderrLbl()
c.Dir = self.GetBuildingSiteCtl().GetDIR_SOURCE()
err = c.Run()
if err != nil {
return err
}
return nil
}