diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ab4a6ee..bcb04ba1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,19 @@ CHANGELOG ========= -## 0.9.3 +## 0.10.0 +- Add support for projects. + [#369](https://github.com/pulumi/esc/pull/369) + +- Deprecate legacy environment name format (/ or ) in favor of / or // + [#375](https://github.com/pulumi/esc/pull/375) + - Add command to clone environments. [#376](https://github.com/pulumi/esc/pull/376) +- Add project filter flag to env ls command. + [#382](https://github.com/pulumi/esc/pull/382) + ## 0.9.2 - Add commands to manage environment tags. diff --git a/cmd/esc/cli/env.go b/cmd/esc/cli/env.go index 2b9441c2..63a5f2dd 100644 --- a/cmd/esc/cli/env.go +++ b/cmd/esc/cli/env.go @@ -197,7 +197,7 @@ func (cmd *envCommand) getNewEnvRef( } // Check if project at / exists. Assume not if listing environments errors - allEnvs, _ := cmd.listEnvironments(ctx, "") + allEnvs, _ := cmd.listEnvironments(ctx, "", "") existsProject := false for _, e := range allEnvs { if strings.EqualFold(e.Project, ref.projectName) { diff --git a/cmd/esc/cli/env_ls.go b/cmd/esc/cli/env_ls.go index 3d6abc90..8044102e 100644 --- a/cmd/esc/cli/env_ls.go +++ b/cmd/esc/cli/env_ls.go @@ -13,7 +13,10 @@ import ( ) func newEnvLsCmd(env *envCommand) *cobra.Command { - var orgFilter string + var ( + orgFilter string + projectFilter string + ) cmd := &cobra.Command{ Use: "ls", @@ -30,7 +33,7 @@ func newEnvLsCmd(env *envCommand) *cobra.Command { return err } - allEnvs, err := env.listEnvironments(ctx, orgFilter) + allEnvs, err := env.listEnvironments(ctx, orgFilter, projectFilter) if err != nil { return err } @@ -55,12 +58,14 @@ func newEnvLsCmd(env *envCommand) *cobra.Command { } cmd.PersistentFlags().StringVarP( - &orgFilter, "organization", "o", "", "Filter returned stacks to those in a specific organization") + &orgFilter, "organization", "o", "", "Filter returned environments to those in a specific organization") + cmd.PersistentFlags().StringVarP( + &projectFilter, "project", "p", "", "Filter returned environments to those in a specific project") return cmd } -func (env *envCommand) listEnvironments(ctx context.Context, orgFilter string) ([]client.OrgEnvironment, error) { +func (env *envCommand) listEnvironments(ctx context.Context, orgFilter, projectFilter string) ([]client.OrgEnvironment, error) { user := env.esc.account.Username continuationToken, allEnvs := "", []client.OrgEnvironment(nil) for { @@ -72,6 +77,9 @@ func (env *envCommand) listEnvironments(ctx context.Context, orgFilter string) ( if e.Organization == user { e.Organization = "" } + if projectFilter != "" && e.Project != projectFilter { + continue + } allEnvs = append(allEnvs, e) } if nextToken == "" {