Add --host file to restrict fetches

This commit is contained in:
2025-07-06 00:36:38 +00:00
parent 9a1d39a4e8
commit f1d007122c
2 changed files with 27 additions and 3 deletions

View File

@ -221,6 +221,7 @@ func main() {
var keyFile string
var port int
var outputDir string
var hostFilter []string
var rootCmd = &cobra.Command{
Use: "ipng-router-backup",
@ -250,10 +251,23 @@ func main() {
log.Fatal("No devices found in config file")
}
successCount := 0
totalCount := len(config.Devices)
// Filter devices if --host flags are provided
devicesToProcess := config.Devices
if len(hostFilter) > 0 {
devicesToProcess = make(map[string]Device)
for _, hostname := range hostFilter {
if deviceConfig, exists := config.Devices[hostname]; exists {
devicesToProcess[hostname] = deviceConfig
} else {
fmt.Printf("Warning: Host '%s' not found in config file\n", hostname)
}
}
}
for hostname, deviceConfig := range config.Devices {
successCount := 0
totalCount := len(devicesToProcess)
for hostname, deviceConfig := range devicesToProcess {
fmt.Printf("\nProcessing device: %s (type: %s)\n", hostname, deviceConfig.Type)
user := deviceConfig.User
@ -306,6 +320,7 @@ func main() {
rootCmd.Flags().StringVar(&keyFile, "key-file", "", "SSH private key file path")
rootCmd.Flags().IntVar(&port, "port", 22, "SSH port")
rootCmd.Flags().StringVar(&outputDir, "output-dir", "/tmp", "Output directory for command output files")
rootCmd.Flags().StringSliceVar(&hostFilter, "host", []string{}, "Specific host(s) to process (can be repeated, processes all if not specified)")
rootCmd.MarkFlagRequired("config")