2017-07-31 11:33:31 +05:30

51 lines
1.4 KiB
Bash

#! /bin/sh
# 400 - Missing hash and/or peer_id
# 403 - Not allowed
# 413 - Too big
# 200 - Ok!
if echo $npm_config_argv | grep -q "install"; then
echo "Running at install step, skipping"
else
if ipfs &>/dev/null; then
echo "## Publishing dependency"
mv node_modules .node_modules 2>/dev/null
HASH=$(ipfs add . -r | tail -n 1 | cut -d ' ' -f 2)
mv .node_modules node_modules 2>/dev/null
echo "Published as $HASH"
PEER=$(ipfs id --format '<id>')
if [ -f ~/.stay/nodes.json ]; then
cat ~/.stay/nodes.json | jq -rc '.[]' | while read host; do
address="$host/api/pin/add/$HASH/$PEER"
status=$(curl -X POST --silent $address)
case "$status" in
"400") echo "$host - Application Error: Missing the hash and/or peer_id"
;;
"403") echo "$host - You do not have access to pinning at this node"
;;
"413") echo "$host - The module was too big to pin!"
;;
"200") echo "$host - Pinned!"
;;
*) echo "Weird status code $status for $host"
;;
esac
done
else
echo "You don't have any saved nodes in ~/.stay/nodes.json, skip pinning"
fi
else
echo "## Could not publish dependency to IPFS, doing the good'ol 'fetch from npm registry' way"
echo "Either 'ipfs' doesn't exists in PATH or you haven't run 'ipfs daemon' before running the command"
exit 0
fi
fi