Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.80 KB | None | 0 0
  1. func GetNonInstalledBinaries(binaryNames []string) map[string][]string {
  2.     binaryMap := make(map[string][]string, len(binaryNames))
  3.     for _, binaryName := range binaryNames {
  4.         binaryMap[binaryName] = nil
  5.     }
  6.  
  7.     // @todo not hardcoded C:/; union of lowest common denominator of os.Getenv([
  8.     //   ALLUSERSPROFILE, APPDATA, LOCALAPPDATA, HOMEDRIVE, LOCALAPPDATA,
  9.     //   Path, SystemDrive, SystemRoot, USERPROFILE, windir
  10.     // ])
  11.     _ = filepath.Walk("C:/", func(path string, info os.FileInfo, err error) error {
  12.         if err == nil {
  13.             if _, ok := binaryMap[info.Name()]; ok {
  14.                 binaryMap[info.Name()] = append(binaryMap[info.Name()], path)
  15.             }
  16.         }
  17.  
  18.         return nil
  19.     })
  20.  
  21.     for binaryName, _ := range binaryMap {
  22.         if binaryMap[binaryName] == nil {
  23.             delete(binaryMap, binaryName)
  24.         }
  25.     }
  26.     return binaryMap
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement