package db // func Read() ([]common.Server, error) { // // open file for reading, create it when necessary // f, err := os.OpenFile("db.json", os.O_RDONLY|os.O_CREATE, os.ModePerm) // if err != nil { // return nil, err // } // servers, err := hetzner.ListServers() // if err != nil { // return nil, err // } // // close file when we are done // defer f.Close() // // read file as byte array // b, err := io.ReadAll(f) // if err != nil { // return nil, err // } // if len(b) == 0 { // return nil, nil // } // // parse byte array to []common.Server // // var serversFromDB []common.Server // // if err := json.Unmarshal(b, &serversFromDB); err != nil { // // return nil, err // // } // // // merge servers from db and hcloud // // servers = append(servers, serversFromDB...) // // return read in servers // return servers, nil // } // func Save(servers []common.Server) error { // // open file with provided flags, create it when necessary // f, err := os.OpenFile("db.json", os.O_RDWR|os.O_CREATE|os.O_TRUNC, os.ModePerm) // if err != nil { // return err // } // // close file when we are done // defer f.Close() // // Marshal data as JSON and put into byte array // b, err := json.MarshalIndent(servers, "", " ") // if err != nil { // return err // } // // write byte array to file // _, err = f.Write(b) // return err // }