in internal/pkg/cli/job_init.go [181:239]
func (o *initJobOpts) Ask() error {
if o.wkldType != "" {
if err := validateJobType(o.wkldType); err != nil {
return err
}
} else {
if err := o.askJobType(); err != nil {
return err
}
}
if o.name == "" {
if err := o.askJobName(); err != nil {
return err
}
}
if err := validateJobName(o.name); err != nil {
return err
}
if err := o.validateDuplicateJob(); err != nil {
return err
}
if !o.wsPendingCreation {
localMft, err := o.mftReader.ReadWorkloadManifest(o.name)
if err == nil {
jobType, err := localMft.WorkloadType()
if err != nil {
return fmt.Errorf(`read "type" field for job %s from local manifest: %w`, o.name, err)
}
if o.wkldType != jobType {
return fmt.Errorf("manifest file for job %s exists with a different type %s", o.name, jobType)
}
log.Infof("Manifest file for job %s already exists. Skipping configuration.\n", o.name)
o.manifestExists = true
return nil
}
var errNotFound *workspace.ErrFileNotExists
if !errors.As(err, &errNotFound) {
return fmt.Errorf("read manifest file for job %s: %w", o.name, err)
}
}
dfSelected, err := o.askDockerfile()
if err != nil {
return err
}
if !dfSelected {
if err := o.askImage(); err != nil {
return err
}
}
if o.schedule == "" {
if err := o.askSchedule(); err != nil {
return err
}
}
if err := validateSchedule(o.schedule); err != nil {
return err
}
return nil
}