flag.BoolVar(&flags.printVersion,"version",false,"Print the version and exit")
flag.BoolVar(&flags.ignoreFailure,"ignore-failure",false,"Exits with 0 status in the event of malformed input from user-data")
flag.StringVar(&flags.sources.file,"from-file","","Read user-data from provided file")
flag.StringVar(&flags.sources.configDrive,"from-configdrive","","Read data from provided cloud-drive directory")
flag.StringVar(&flags.sources.waagent,"from-waagent","","Read data from provided waagent directory")
flag.BoolVar(&flags.sources.metadataService,"from-metadata-service",false,"[DEPRECATED - Use -from-ec2-metadata] Download data from metadata service")
flag.StringVar(&flags.sources.ec2MetadataService,"from-ec2-metadata","","Download EC2 data from the provided url")
flag.StringVar(&flags.sources.gceMetadataService,"from-gce-metadata","","Download GCE data from the provided url")
flag.BoolVar(&flags.sources.cloudSigmaMetadataService,"from-cloudsigma-metadata",false,"Download data from CloudSigma server context")
flag.StringVar(&flags.sources.digitalOceanMetadataService,"from-digitalocean-metadata","","Download DigitalOcean data from the provided url")
flag.StringVar(&flags.sources.packetMetadataService,"from-packet-metadata","","Download Packet data from metadata service")
flag.StringVar(&flags.sources.url,"from-url","","Download user-data from provided url")
flag.BoolVar(&flags.sources.procCmdLine,"from-proc-cmdline",false,fmt.Sprintf("Parse %s for '%s=<url>', using the cloud-config served by an HTTP GET to <url>",proc_cmdline.ProcCmdlineLocation,proc_cmdline.ProcCmdlineCloudConfigFlag))
flag.BoolVar(&flags.sources.vmware,"from-vmware-guestinfo",false,"Read data from VMware guestinfo")
flag.StringVar(&flags.sources.ovfEnv,"from-vmware-ovf-env","","Read data from OVF Environment")
flag.StringVar(&flags.oem,"oem","","Use the settings specific to the provided OEM")
flag.StringVar(&flags.convertNetconf,"convert-netconf","","Read the network config provided in cloud-drive and translate it from the specified format into networkd unit files")
flag.StringVar(&flags.workspace,"workspace","/var/lib/coreos-cloudinit","Base directory coreos-cloudinit should use to store data")
flag.StringVar(&flags.sshKeyName,"ssh-key-name",initialize.DefaultSSHKeyName,"Add SSH keys to the system with the given name")
flag.BoolVar(&flags.validate,"validate",false,"[EXPERIMENTAL] Validate the user-data but do not apply it to the system")
fmt.Printf("Invalid option to -oem: %q. Supported options: %q\n",flags.oem,oems)
os.Exit(2)
}
ifflags.printVersion==true{
fmt.Printf("coreos-cloudinit %s\n",version)
os.Exit(0)
}
switchflags.convertNetconf{
case"":
case"debian":
case"packet":
case"vmware":
default:
fmt.Printf("Invalid option to -convert-netconf: '%s'. Supported options: 'debian, packet, vmware'\n",flags.convertNetconf)
os.Exit(2)
}
dss:=getDatasources()
iflen(dss)==0{
fmt.Println("Provide at least one of --from-file, --from-configdrive, --from-ec2-metadata, --from-gce-metadata, --from-cloudsigma-metadata, --from-packet-metadata, --from-digitalocean-metadata, --from-vmware-guestinfo, --from-waagent, --from-url or --from-proc-cmdline")
os.Exit(2)
}
ds:=selectDatasource(dss)
ifds==nil{
log.Println("No datasources available in time")
os.Exit(1)
}
log.Printf("Fetching user-data from datasource of type %q\n",ds.Type())
userdataBytes,err:=ds.FetchUserdata()
iferr!=nil{
log.Printf("Failed fetching user-data from datasource: %v. Continuing...\n",err)
failure=true
}
userdataBytes,err=decompressIfGzip(userdataBytes)
iferr!=nil{
log.Printf("Failed decompressing user-data from datasource: %v. Continuing...\n",err)