Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

contains/includes #352

Open
vogler opened this issue Aug 28, 2023 · 2 comments
Open

contains/includes #352

vogler opened this issue Aug 28, 2023 · 2 comments
Labels
enhancement New feature or request

Comments

@vogler
Copy link

vogler commented Aug 28, 2023

It would be nice to have some higher level functions like includes(x) = filter(equal(.,x))

$ echo '[[1,2,3],[1,3]]' | dasel -r json 'all().filter(all().filter(equal(.,2)))'
[
  1,
  2,
  3
]
@vogler vogler added the enhancement New feature or request label Aug 28, 2023
@rhtenhove
Copy link
Contributor

I am looking for the same, however I can't get it to work even with the verbose example in this file:

{
  "plugins": [
    [
      "@semantic-release/git",
      {
        "assets": ["README.md", "here/is/some-other-file.yml"],
      }
    ],
    "@semantic-release/gitlab"
  ]
}

I would expect the following to return README.md

dasel -f .releaserc -r json '.plugins.all().filter(equal(type(),array)).[1].as
sets.all().filter(equal(.,"README.md"))'

But it returns nothing.

The goal is to figure out if in this case README.md is in that list or not.

@TomWright
Copy link
Owner

@rhtenhove This is pretty convoluted but does what you need. I do want to include some functionality to simplify this a lot.

orDefault(plugins.all().filter(equal(type(),array)).all().filter(equal(type(),object)).assets?.all().filter(equal(.,README.md)).count(),0).moreThan(.,0)

Essentially filter out any non README.md items, count the items and then check if that's more than 0.
I'm wrapping the README.md discovery in a call to orDefault to get around the fact that it may return no rows if no array/object/README items are found.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants