diff --git a/src/cli/bin.js b/src/cli/bin.js index f22530c10e..976783a89c 100755 --- a/src/cli/bin.js +++ b/src/cli/bin.js @@ -12,10 +12,23 @@ updateNotifier({ updateCheckInterval: 1000 * 60 * 60 * 24 * 7 // 1 week }).notify() -yargs +const cli = yargs .commandDir('commands') .demand(1) - .help() + +// NOTE: This creates an alias of +// `jsipfs files {add, get, cat}` to `jsipfs {add, get, cat}`. +// This will stay until https://github.com/ipfs/specs/issues/98 is resolved. +const addCmd = require('./commands/files/add') +const catCmd = require('./commands/files/cat') +const getCmd = require('./commands/files/get') +const aliases = [addCmd, catCmd, getCmd] +aliases.forEach((alias) => { + cli.command(alias.command, alias.describe, alias.builder, alias.handler) +}) + +// finalize cli setup +cli.help() .strict() .completion() .argv diff --git a/test/cli/test-files.js b/test/cli/test-files.js index c46724efd0..eef6e9717e 100644 --- a/test/cli/test-files.js +++ b/test/cli/test-files.js @@ -21,6 +21,15 @@ describe('files', () => { done() }) }) + it('cat alias', (done) => { + nexpect.spawn('node', [process.cwd() + '/src/cli/bin.js', 'cat', 'QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o'], {env}) + .run((err, stdout, exitcode) => { + expect(err).to.not.exist + expect(exitcode).to.equal(0) + expect(stdout[0]).to.equal('hello world') + done() + }) + }) it('add', (done) => { nexpect.spawn('node', [process.cwd() + '/src/cli/bin.js', 'files', 'add', 'src/init-files/init-docs/readme'], {env}) @@ -31,6 +40,15 @@ describe('files', () => { done() }) }) + it('add alias', (done) => { + nexpect.spawn('node', [process.cwd() + '/src/cli/bin.js', 'add', 'src/init-files/init-docs/readme'], {env}) + .run((err, stdout, exitcode) => { + expect(err).to.not.exist + expect(exitcode).to.equal(0) + expect(stdout[0]).to.equal('added QmPZ9gcCEpqKTo6aq61g2nXGUhM4iCL3ewB6LDXZCtioEB readme') + done() + }) + }) it('add recursively', (done) => { nexpect.spawn('node', [process.cwd() + '/src/cli/bin.js', 'files', 'add', '-r', 'src/init-files/init-docs'], {env})