Is it possible to interpolate nested object?
- Dominant language
- Jsonnet
- Stars
- 7.6k
- Forks
- 475
- PR merge metrics
- No merged PRs in 30d
Description
My `jsonnet` file looks like this.
```jsonnet
local constants = {
sys: {
os: 'linux',
arch: ['amd64', 'x86_64'],
},
};
{
prefix: '~/.local',
packages: [
{
local version = '1.18',
name: 'golang',
version: version,
file: 'go%(version)s.%(sys.os)s-%(sys.arch[0])s.tar.gz' % { version: version } + constants,
description: 'The Go programming language.',
url: 'https://dl.google.com/go/' + self.file,
prebuild: "curl -LO '%(url)s'" % self,
build: |||
rm -rf %(prefix)s/go
tar -C %(prefix)s -xzf %(file)s
||| % { prefix: $.prefix, url: $.packages[0].file },
},
],
}
```
I'm trying to access nested field but get an error:
```jsonnet
...
file: 'go%(version)s.%(sys.os)s-%(sys.arch[0])s.tar.gz' % { version: version } + constants,
...
```
Error:
```
RUNTIME ERROR: No such field: sys.os
```
Expected:
```
file: "go1.18.linux-amd64.tar.gz"
```
Contributor guide
Assessment
This issue has not been assessed yet.