UNPKG

ipfs

Version:

JavaScript implementation of the IPFS specification

47 lines (39 loc) 1.15 kB
'use strict' const bl = require('bl') const fs = require('fs') const multibase = require('multibase') const { print } = require('../../utils') const { cidToString } = require('../../../utils/cid') module.exports = { command: 'put [data]', describe: 'Stores input as a DAG object, outputs its key', builder: { 'input-enc': { type: 'string', default: 'json' }, 'cid-base': { describe: 'Number base to display CIDs in. Note: specifying a CID base for v0 CIDs will have no effect.', type: 'string', choices: multibase.names } }, handler (argv) { argv.resolve((async () => { let data if (argv.data) { data = fs.readFileSync(argv.data) } else { data = await new Promise((resolve, reject) => { process.stdin.pipe(bl((err, input) => { if (err) return reject(err) resolve(input) })) }) } const ipfs = await argv.getIpfs() const cid = await ipfs.object.put(data, { enc: argv.inputEnc }) print(`added ${cidToString(cid, { base: argv.cidBase, upgrade: false })}`) })()) } }