mirror of
https://github.com/thunderbrewhq/binana.git
synced 2026-03-22 22:00:13 +00:00
61 lines
1.2 KiB
Go
61 lines
1.2 KiB
Go
package profile
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
|
|
"github.com/thunderbrewhq/binana/go/app"
|
|
"github.com/thunderbrewhq/binana/go/symbols"
|
|
)
|
|
|
|
type TidyParams struct {
|
|
Profile string
|
|
}
|
|
|
|
func tidy_symbol_file(name string, params *TidyParams) (err error) {
|
|
var symbol_table symbols.Table
|
|
symbol_table.Init()
|
|
if err = symbol_table.Load(name); err != nil {
|
|
return
|
|
}
|
|
var f *os.File
|
|
f, err = os.Create(name)
|
|
if err != nil {
|
|
return
|
|
}
|
|
if _, err = symbol_table.WriteTo(f); err != nil {
|
|
f.Close()
|
|
return
|
|
}
|
|
err = f.Close()
|
|
return
|
|
}
|
|
|
|
func tidy_symbol_directory(name string, params *TidyParams) (err error) {
|
|
var contents []os.DirEntry
|
|
contents, err = os.ReadDir(name)
|
|
if err != nil {
|
|
return
|
|
}
|
|
for _, content := range contents {
|
|
if content.IsDir() {
|
|
if err = tidy_symbol_directory(filepath.Join(name, content.Name()), params); err != nil {
|
|
return
|
|
}
|
|
} else {
|
|
if err = tidy_symbol_file(filepath.Join(name, content.Name()), params); err != nil {
|
|
return
|
|
}
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
func Tidy(params *TidyParams) {
|
|
// tidy symbols
|
|
profile_symbols := filepath.Join("profile", params.Profile, "symbol")
|
|
|
|
if err := tidy_symbol_directory(profile_symbols, params); err != nil {
|
|
app.Fatal(err)
|
|
}
|
|
}
|