(dirName string, perm os.FileMode, dirDesc string)
| 268 | } |
| 269 | |
| 270 | func TryMkdirs(dirName string, perm os.FileMode, dirDesc string) error { |
| 271 | info, err := os.Stat(dirName) |
| 272 | if errors.Is(err, fs.ErrNotExist) { |
| 273 | err = os.MkdirAll(dirName, perm) |
| 274 | if err != nil { |
| 275 | return fmt.Errorf("cannot make %s %q: %w", dirDesc, dirName, err) |
| 276 | } |
| 277 | info, err = os.Stat(dirName) |
| 278 | } |
| 279 | if err != nil { |
| 280 | return fmt.Errorf("error trying to stat %s: %w", dirDesc, err) |
| 281 | } |
| 282 | if !info.IsDir() { |
| 283 | return fmt.Errorf("%s %q must be a directory", dirDesc, dirName) |
| 284 | } |
| 285 | return nil |
| 286 | } |
| 287 | |
| 288 | func listValidLangs(ctx context.Context) []string { |
| 289 | out, err := exec.CommandContext(ctx, "locale", "-a").CombinedOutput() |
no test coverage detected