Unexpected behavior w/ $IPFS_PATH set
- Lingua principale
- TypeScript
- Stelle
- 35
- Fork
- 8
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
- Looks like `iim`'s `ipfs` bin (https://github.com/alanshaw/iim/blob/master/src/bin/ipfs.tpl.js) doesn't inherit my `$IPFS_PATH` env var, but it does respect it if I pass it in directly in the invocation line. [1] This was unexpected/confusing-- i'd say either respect it in both places, or not at all?
- if not respecting it at all, maybe warn the user if it is set [2]
- `ipfs -c $IPFS_PATH` works fine 👍
---
[0] demo that `ipfs` in my $PATH is indeed the wrapper from `iim`
```
> which ipfs
/usr/local/bin/ipfs
> cat $(which ipfs)
#!/usr/bin/env node
const Fs = require('fs')
const Path = require('path')
const Os = require('os')
const ChildProcess = require('child_process')
const env = Object.assign({}, process.env)
if (!env.IPFS_PATH) {
const ipfsPath = Path.join(Os.homedir(), '.iim/go-ipfs@0.4.18')
Fs.mkdirSync(ipfsPath, { recursive: true })
env.IPFS_PATH = ipfsPath
}
ChildProcess.spawn('/Users/jbenet/.iim/dists/go-ipfs@0.4.18/node_modules/go-ipfs-dep/go-ipfs/ipfs', process.argv.slice(2), { env, stdio: 'inherit' })
```
---
[1] demo that:
- `iim`'s wrapper does not use `$IPFS_PATH` var from environment, but does use it if passed in directly in the invocation. Not sure why, but this was unexpected.
- `ipfs -c` works fine.
```
> echo $IPFS_PATH
/Users/jbenet/.ipfs
> cat $IPFS_PATH/config | grep PeerID
"PeerID": "Qmbwqf292G3GbrNm1ydtKeqhqqgyqXDtDvsuBYuvXsPHHr",
> ipfs config show | grep PeerID
"PeerID": "QmfUQQTJzzPbqLbMhmxpEEEosx223tV59gTuhGM24CxZeN"
> IPFS_PATH="$IPFS_PATH" ipfs config show | grep PeerID
"PeerID": "Qmbwqf292G3GbrNm1ydtKeqhqqgyqXDtDvsuBYuvXsPHHr"
> ipfs -c "$IPFS_PATH" config show | grep PeerID
"PeerID": "Qmbwqf292G3GbrNm1ydtKeqhqqgyqXDtDvsuBYuvXsPHHr"
```
---
[2] potential ways to warn the user not to use `$IPFS_PATH` with `iim`:
```
> echo $IPFS_PATH
/Users/jbenet/.ipfs
# if it should be an error, dont run command and return non zero exit code, from the `iim` wrapper
> ipfs config show | grep PeerID
error: IPFS_PATH is not used by iim and the versions of ipfs it installs. use `ipfs -c` instead
# if it should be a warning, just output that to stderr, but then proceed.
> ipfs config show | grep PeerID
error: IPFS_PATH is set, but it is not used by iim and the versions of ipfs it installs. use `ipfs -c` instead
"PeerID": "QmfUQQTJzzPbqLbMhmxpEEEosx223tV59gTuhGM24CxZeN"
```
i'm divided either way, but good to get the feedback quickly to adjust usage
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Valutazione
Questa issue non è ancora stata valutata.