| 89 | } |
| 90 | |
| 91 | func runImport(_ *cobra.Command, _ []string) error { |
| 92 | if err := ValidateFormat(importFormat, []string{"table", "json", "yaml"}); err != nil { |
| 93 | return err |
| 94 | } |
| 95 | |
| 96 | flags := GetGlobalFlags() |
| 97 | |
| 98 | var cfg sync.ImportConfig |
| 99 | var err error |
| 100 | |
| 101 | if importSource != "" { |
| 102 | cfg, err = buildImportConfigFromFlags() |
| 103 | } else { |
| 104 | cfg, err = runImportWizard() |
| 105 | } |
| 106 | if err != nil { |
| 107 | return err |
| 108 | } |
| 109 | |
| 110 | cfg.DryRun = importDryRun |
| 111 | cfg.Verbose = flags.Verbose |
| 112 | |
| 113 | if !flags.Quiet && importFormat == "table" { |
| 114 | fmt.Fprintf(os.Stderr, "Importing from %s...\n", cfg.SourceName) |
| 115 | if cfg.DryRun { |
| 116 | fmt.Fprintln(os.Stderr, "(dry-run mode: no files will be written)") |
| 117 | } |
| 118 | } |
| 119 | |
| 120 | result, err := sync.RunImport(cfg) |
| 121 | if err != nil { |
| 122 | return fmt.Errorf("import failed: %w", err) |
| 123 | } |
| 124 | |
| 125 | return printImportResult(result, importFormat, flags.Quiet) |
| 126 | } |
| 127 | |
| 128 | func buildImportConfigFromFlags() (sync.ImportConfig, error) { |
| 129 | project := importProject |