Skip to content

yaci-cli fails to find its own config if run from anywhere but the same directory #180

Description

@kozross

When using the zip install method at least, yaci-cli will fail to find any of its configuration files if run from any directory other than the same one yaci-cli itself is in. Thus, this will work as expected:

./yaci-cli

but, for example, this will not:

./foo/yaci-cli

Furthermore, this failure is not clearly indicated. Here is what happens when I try to use download in yaci-cli run as ./foo/yaci-cli:

yaci-cli:>download
🔴 Node version is not set. Please set the node version (node.version) or node download url (node.url) in download.properties
🔴 Download URL for cardano-node is not set. Please set the download URL in download.properties
🔴 YaciStore version is not set. Please set the yaci-store version (yaci.store.version) or yaci-store download url (yaci.store.url) in download.properties
🔴 Download URL for yaci-store (n2c) is not set. Please set the download URL in download.properties
🔴 YaciStore version is not set. Please set the yaci-store version (yaci.store.version) or yaci-store download url (yaci.store.url) in download.properties
🔴 Download URL for yaci-store (all) is not set. Please set the download URL in download.properties
🔴 Failed to download any yaci-store native variant.
🔴 Ogmios version is not set. Please set the ogmios version (ogmios.version) or ogmios download url (ogmios.url) in download.properties
🔴 Download URL for ogmios is not set. Please set the download URL in download.properties
🔴 Kupo version is not set. Please set the kupo version (kupo.version) or kupo download url (kupo.url) in download.properties
🔴 Download URL for Kupo is not set. Please set the download URL in download.properties
🔴 Yano version/tag is not set. Please set yano.version and yano.tag or yano.url in download.properties
🔴 Download URL for Yano is not set. Please set the download URL in download.properties

However, if I do the exact same thing running as ./yaci-cli (that is, from the same directory):

yaci-cli:>download
[💡 Download] Downloading cardano-node from https://github.com/IntersectMBO/cardano-node/releases/download/11.0.1/cardano-node-11.0.1-linux-amd64.tar.gz
Downloading: 100%
✅ Download complete for cardano-node!
[💡 Extracting] Extracting /home/koz/mlabs/brale-audit/yaci/./share/preprod/config-legacy.json
[💡 Extracting] Extracting /home/koz/mlabs/brale-audit/yaci/./share/preprod/tracer-config.json
[💡 Extracting] Extracting /home/koz/mlabs/brale-audit/yaci/./share/preprod/byron-genesis.json
[💡 Extracting] Extracting /home/koz/mlabs/brale-audit/yaci/./share/preprod/peer-snapshot.json
[💡 Extracting] Extracting /home/koz/mlabs/brale-audit/yaci/./share/preprod/alonzo-genesis.json
[💡 Extracting] Extracting /home/koz/mlabs/brale-audit/yaci/./share/preprod/conway-genesis.json
[💡 Extracting] Extracting /home/koz/mlabs/brale-audit/yaci/./share/preprod/submit-api-config.json
[💡 Extracting] Extracting /home/koz/mlabs/brale-audit/yaci/./share/preprod/shelley-genesis.json
[💡 Extracting] Extracting /home/koz/mlabs/brale-audit/yaci/./share/preprod/topology.json
[💡 Extracting] Extracting /home/koz/mlabs/brale-audit/yaci/./share/preprod/config.json
[💡 Extracting] Extracting /home/koz/mlabs/brale-audit/yaci/./share/preview/tracer-config.json
[💡 Extracting] Extracting /home/koz/mlabs/brale-audit/yaci/./share/preview/byron-genesis.json
[💡 Extracting] Extracting /home/koz/mlabs/brale-audit/yaci/./share/preview/peer-snapshot.json
[💡 Extracting] Extracting /home/koz/mlabs/brale-audit/yaci/./share/preview/config-legacy.json
[💡 Extracting] Extracting /home/koz/mlabs/brale-audit/yaci/./share/preview/checkpoints.json
[💡 Extracting] Extracting /home/koz/mlabs/brale-audit/yaci/./share/preview/submit-api-config.json
[💡 Extracting] Extracting /home/koz/mlabs/brale-audit/yaci/./share/preview/conway-genesis.json
[💡 Extracting] Extracting /home/koz/mlabs/brale-audit/yaci/./share/preview/alonzo-genesis.json
[💡 Extracting] Extracting /home/koz/mlabs/brale-audit/yaci/./share/preview/topology.json
[💡 Extracting] Extracting /home/koz/mlabs/brale-audit/yaci/./share/preview/shelley-genesis.json
[💡 Extracting] Extracting /home/koz/mlabs/brale-audit/yaci/./share/preview/config.json
[more lines omitted]

This is extremely counter-intuitive relative any other CLI application: not only is yaci-cli incredibly sensitive to what directory it is run from, it doesn't even clearly indicate that it found no config!

Furthermore, as far as I can tell, there is no way, either by CLI flag or environmental variable, to inform yaci-cli where to find its own config. This seems like an odd choice.

These results were obtained using 0.12.0-beta5.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions