]> git.immae.eu Git - perso/Immae/Projets/Nodejs/Surfer.git/blame - cli/surfer.js
Make listen port and ldap filter more flexible
[perso/Immae/Projets/Nodejs/Surfer.git] / cli / surfer.js
CommitLineData
8c3ae071
JZ
1#!/usr/bin/env node
2
3'use strict';
4
5var program = require('commander'),
6 actions = require('./actions');
7
8fa08229 8program.version(require('../package.json').version);
8c3ae071 9
ec4c48f2
JZ
10// Those override the login settings if provided
11program.option('-s, --server <url>', 'Server URL (optional)');
12program.option('-t, --token <access token>', 'Server Access Token (optional)');
13
32fbb54d 14program.command('login <url>')
8c3ae071 15 .description('Login to server')
ff4aca50
JZ
16 .option('--username [username]', 'Username (optional)')
17 .option('--password [password]', 'Password (optional)')
8c3ae071
JZ
18 .action(actions.login);
19
15397f71
JZ
20program.command('logout')
21 .description('Logout from server')
22 .action(actions.logout);
23
511ce661 24program.command('put <file|dir...>')
d53a1669 25 .option('-a --all', 'Also include hidden files and folders.', false)
511ce661
GR
26 .description('Puts a list of files or dirs to the destination. The last argument is destination dir')
27 .action(actions.put)
28 .on('--help', function() {
29 console.log();
30 console.log(' Examples:');
31 console.log();
32 console.log(' $ surfer put file.txt / # puts to /file.txt');
33 console.log(' $ surfer put file.txt /data # puts to /data/file.txt');
34 console.log(' $ surfer put dir /data # puts dir/* as /data/dir/*');
35 console.log(' $ surfer put dir/. / # puts dir/* as /app/data/*');
36 console.log(' $ surfer put dir1 dir2 file1 / # puts as /dir1/* /dir2/* and /file');
37 console.log();
38 });
8c3ae071 39
410ee66f 40program.command('get [file|dir]')
24545229 41 .description('Get a file or directory listing')
8c3ae071
JZ
42 .action(actions.get);
43
24545229 44program.command('del <file>')
898fe7c8
JZ
45 .option('-r --recursive', 'Recursive delete directories.', false)
46 .option('-d --dry-run', 'Only list files to delete.', false)
24545229 47 .description('Delete a file or directory')
8c3ae071
JZ
48 .action(actions.del);
49
50program.parse(process.argv);
51
52if (!process.argv.slice(2).length) {
53 program.outputHelp();
54} else { // https://github.com/tj/commander.js/issues/338
ec4c48f2
JZ
55 // var knownCommand = program.commands.some(function (command) { return command._name === process.argv[2]; });
56 // if (!knownCommand) {
57 // console.error('Unknown command: ' + process.argv[2]);
58 // process.exit(1);
59 // }
8c3ae071 60}