From a4927a89155dd7a26244840f86a55cfcb62d94bd Mon Sep 17 00:00:00 2001 From: Clayton Craft Date: Fri, 9 Sep 2022 22:00:28 -0700 Subject: [PATCH] getHookFiles: return error instead of panicking (MR 22) --- main.go | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/main.go b/main.go index 06ee237..e70ee2a 100644 --- a/main.go +++ b/main.go @@ -148,30 +148,30 @@ func exists(file string) bool { return false } -func getHookFiles(filesdir string) misc.StringSet { +func getHookFiles(filesdir string) (misc.StringSet, error) { fileInfo, err := os.ReadDir(filesdir) if err != nil { - log.Fatal(err) + return nil, err } files := make(misc.StringSet) for _, file := range fileInfo { path := filepath.Join(filesdir, file.Name()) f, err := os.Open(path) if err != nil { - log.Fatal(err) + return nil, err } defer f.Close() s := bufio.NewScanner(f) for s.Scan() { if err := getFiles(files, misc.StringSet{s.Text(): true}, true); err != nil { - log.Fatalf("Unable to find file %q required by %q", s.Text(), path) + return nil, fmt.Errorf("unable to find file %q required by %q", s.Text(), path) } } if err := s.Err(); err != nil { - log.Fatal(err) + return nil, err } } - return files + return files, nil } // Recursively list all dependencies for a given ELF binary @@ -429,7 +429,11 @@ func getInitfsExtraFiles(files misc.StringSet, devinfo deviceinfo.DeviceInfo) er // Hook files & scripts if exists("/etc/postmarketos-mkinitfs/files-extra") { log.Println("- Including hook files") - hookFiles := getHookFiles("/etc/postmarketos-mkinitfs/files-extra") + var hookFiles misc.StringSet + hookFiles, err := getHookFiles("/etc/postmarketos-mkinitfs/files-extra") + if err != nil { + return err + } if err := getFiles(files, hookFiles, true); err != nil { return err } @@ -462,7 +466,10 @@ func getInitfsFiles(files misc.StringSet, devinfo deviceinfo.DeviceInfo) error { // Hook files & scripts if exists("/etc/postmarketos-mkinitfs/files") { log.Println("- Including hook files") - hookFiles := getHookFiles("/etc/postmarketos-mkinitfs/files") + hookFiles, err := getHookFiles("/etc/postmarketos-mkinitfs/files") + if err != nil { + return err + } if err := getFiles(files, hookFiles, true); err != nil { return err }