|
7 | 7 | "strings" |
8 | 8 | "sync" |
9 | 9 |
|
| 10 | + "github.com/leijurv/gb/config" |
10 | 11 | "github.com/leijurv/gb/crypto" |
11 | 12 | "github.com/leijurv/gb/db" |
12 | 13 | "github.com/leijurv/gb/gdrive" |
@@ -151,30 +152,41 @@ func ClearCache() { |
151 | 152 | cacheLock.Unlock() |
152 | 153 | } |
153 | 154 |
|
| 155 | +func storageSelectPrintOptions() { |
| 156 | + descs := GetAllDescriptors() |
| 157 | + log.Println("Options:") |
| 158 | + for _, d := range descs { |
| 159 | + var label string |
| 160 | + err := db.DB.QueryRow("SELECT readable_label FROM storage WHERE storage_id = ?", d.StorageID[:]).Scan(&label) |
| 161 | + if err != nil { |
| 162 | + panic(err) |
| 163 | + } |
| 164 | + log.Println("•", d.Kind, d.RootPath, "To use this one, add the option `--label=\""+label+"\"`") |
| 165 | + } |
| 166 | +} |
| 167 | + |
154 | 168 | func StorageSelect(label string) (storage_base.Storage, bool) { |
| 169 | + if label == "" && config.Config().DefaultStorage != "" { |
| 170 | + label = config.Config().DefaultStorage |
| 171 | + log.Println("Using default storage from config:", label) |
| 172 | + } |
155 | 173 | if label == "" { |
156 | 174 | descs := GetAllDescriptors() |
157 | 175 | if len(descs) == 1 { |
158 | 176 | log.Println("Auto-selecting the only storage available") |
159 | 177 | return StorageDataToStorage(descs[0]), true |
160 | 178 | } |
161 | 179 | log.Println("First, we need to pick a storage to fetch em from") |
162 | | - log.Println("Options:") |
163 | | - for _, d := range descs { |
164 | | - var label string |
165 | | - err := db.DB.QueryRow("SELECT readable_label FROM storage WHERE storage_id = ?", d.StorageID[:]).Scan(&label) |
166 | | - if err != nil { |
167 | | - panic(err) |
168 | | - } |
169 | | - log.Println("•", d.Kind, d.RootPath, "To use this one, add the option `--label=\""+label+"\"`") |
170 | | - } |
| 180 | + storageSelectPrintOptions() |
171 | 181 | return nil, false |
172 | 182 | } |
173 | 183 | GetAll() |
174 | 184 | var storageID []byte |
175 | 185 | err := db.DB.QueryRow("SELECT storage_id FROM storage WHERE readable_label = ?", label).Scan(&storageID) |
176 | 186 | if err != nil { |
177 | | - panic(err) |
| 187 | + log.Println("No storage found with label:", label) |
| 188 | + storageSelectPrintOptions() |
| 189 | + return nil, false |
178 | 190 | } |
179 | 191 | storage := GetByID(storageID) |
180 | 192 | log.Println("Using storage:", storage) |
|
0 commit comments