Files
obitools4/cmd/obitools/obifind/main.go

62 lines
1.2 KiB
Go
Raw Normal View History

2022-01-13 23:27:39 +01:00
package main
import (
"fmt"
"os"
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
2024-11-16 10:01:07 +01:00
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitax"
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obifind"
2022-01-13 23:27:39 +01:00
)
func main() {
2022-01-14 15:16:41 +01:00
optionParser := obioptions.GenerateOptionParser(obifind.OptionSet)
2022-01-13 23:27:39 +01:00
_, args := optionParser(os.Args)
2022-01-13 23:27:39 +01:00
//prof, _ := os.Create("obifind.prof")
//pprof.StartCPUProfile(prof)
restrictions, err := obifind.ITaxonRestrictions()
if err != nil {
fmt.Printf("%+v", err)
}
switch {
2024-11-14 19:10:23 +01:00
case obifind.CLIRequestsPathForTaxid() != "NA":
2022-01-13 23:27:39 +01:00
2024-11-16 10:01:07 +01:00
taxon := obitax.DefaultTaxonomy().Taxon(obifind.CLIRequestsPathForTaxid())
2022-01-13 23:27:39 +01:00
2024-11-14 19:10:23 +01:00
if taxon == nil {
2022-01-13 23:27:39 +01:00
fmt.Printf("%+v", err)
}
2024-11-14 19:10:23 +01:00
s := taxon.Path()
2022-01-13 23:27:39 +01:00
if err != nil {
fmt.Printf("%+v", err)
}
obifind.TaxonWriter(s.Iterator(),
2024-11-14 19:10:23 +01:00
fmt.Sprintf("path:%s", taxon.String()))
2022-01-13 23:27:39 +01:00
case len(args) == 0:
2024-11-16 10:01:07 +01:00
taxonomy := obitax.DefaultTaxonomy()
2022-01-13 23:27:39 +01:00
obifind.TaxonWriter(restrictions(taxonomy.Iterator()), "")
default:
matcher, err := obifind.ITaxonNameMatcher()
if err != nil {
fmt.Printf("%+v", err)
}
for _, pattern := range args {
s := restrictions(matcher(pattern))
obifind.TaxonWriter(s, pattern)
}
}
//pprof.StopCPUProfile()
}