createFiles creates files required by the CLI in the ExecutionDirectory
()
| 206 | |
| 207 | // createFiles creates files required by the CLI in the ExecutionDirectory |
| 208 | func (o *InitOptions) createFiles() error { |
| 209 | var op errors.Op = "commands.InitOptions.createFiles" |
| 210 | // create the directory |
| 211 | err := os.MkdirAll(filepath.Dir(o.EC.ExecutionDirectory), os.ModePerm) |
| 212 | if err != nil { |
| 213 | return errors.E(op, fmt.Errorf("error creating setup directories: %w", err)) |
| 214 | } |
| 215 | // set config object |
| 216 | var config = &cli.Config{ |
| 217 | Version: o.Version, |
| 218 | ServerConfig: cli.ServerConfig{ |
| 219 | Endpoint: defaultEndpoint, |
| 220 | }, |
| 221 | MetadataDirectory: "metadata", |
| 222 | ActionConfig: &actionMetadataFileTypes.ActionExecutionConfig{ |
| 223 | Kind: "synchronous", |
| 224 | HandlerWebhookBaseURL: "http://localhost:3000", |
| 225 | }, |
| 226 | } |
| 227 | if o.Endpoint != "" { |
| 228 | if _, err := url.ParseRequestURI(o.Endpoint); err != nil { |
| 229 | return errors.E(op, fmt.Errorf("error validating endpoint URL: %w", err)) |
| 230 | } |
| 231 | config.ServerConfig.Endpoint = o.Endpoint |
| 232 | } |
| 233 | if o.AdminSecret != "" { |
| 234 | config.ServerConfig.AdminSecret = o.AdminSecret |
| 235 | } |
| 236 | |
| 237 | // write the config file |
| 238 | o.EC.Config = config |
| 239 | o.EC.ConfigFile = filepath.Join(o.EC.ExecutionDirectory, "config.yaml") |
| 240 | err = o.EC.WriteConfig(nil) |
| 241 | if err != nil { |
| 242 | return errors.E(op, fmt.Errorf("cannot write config file: %w", err)) |
| 243 | } |
| 244 | |
| 245 | // create migrations directory |
| 246 | o.EC.MigrationDir = filepath.Join(o.EC.ExecutionDirectory, cli.DefaultMigrationsDirectory) |
| 247 | err = os.MkdirAll(o.EC.MigrationDir, os.ModePerm) |
| 248 | if err != nil { |
| 249 | return errors.E(op, fmt.Errorf("cannot write migration directory: %w", err)) |
| 250 | } |
| 251 | |
| 252 | if config.Version >= cli.V2 { |
| 253 | // create metadata directory |
| 254 | o.EC.MetadataDir = filepath.Join(o.EC.ExecutionDirectory, cli.DefaultMetadataDirectory) |
| 255 | err = os.MkdirAll(o.EC.MetadataDir, os.ModePerm) |
| 256 | if err != nil { |
| 257 | return errors.E(op, fmt.Errorf("cannot write metadata directory: %w", err)) |
| 258 | } |
| 259 | err = o.EC.Version.GetServerFeatureFlags() |
| 260 | if err != nil { |
| 261 | o.EC.Logger.Warnf("error determining server feature flags: %v", err) |
| 262 | } |
| 263 | |
| 264 | // create metadata files |
| 265 | plugins := make(metadataobject.Objects, 0) |
no test coverage detected