binana/go/profile/compile_artifacts.go

36 lines
825 B
Go
Raw Normal View History

package profile
import (
"fmt"
"slices"
)
type CompileArtifactsParams struct {
CompressX64dbgDatabase bool
}
func (profile *Profile) CompileArtifacts(params *CompileArtifactsParams) (err error) {
if !profile.loaded {
panic(profile.loaded)
}
compilers := []struct {
OS []string
Name string
Fn func(*Profile, *CompileArtifactsParams) error
}{
{[]string{"windows", "linux", "darwin"}, "Ghidra", compile_ghidra_artifacts},
{[]string{"windows", "linux", "darwin"}, "IDA Pro", compile_idapro_artifacts},
{[]string{"windows"}, "x64dbg", compile_x64dbg_artifacts},
}
for _, compiler := range compilers {
if slices.Contains(compiler.OS, profile.Info.OS) {
fmt.Println("compiling artifacts for", compiler.Name)
if err = compiler.Fn(profile, params); err != nil {
return
}
}
}
return
}