]> git.immae.eu Git - perso/Immae/Projets/Nodejs/Surfer.git/blobdiff - cli/surfer.js
add surfer put examples and fix put
[perso/Immae/Projets/Nodejs/Surfer.git] / cli / surfer.js
index 7c5ac8aef57d2a528782ea978e28c916ab09edbf..bd574f54b6f5e2d41023212066a7bfc501bce864 100755 (executable)
@@ -5,18 +5,39 @@
 var program = require('commander'),
     actions = require('./actions');
 
-program.version('0.1.0');
+program.version(require('../package.json').version);
+
+// Those override the login settings if provided
+program.option('-s, --server <url>', 'Server URL (optional)');
+program.option('-t, --token <access token>', 'Server Access Token (optional)');
 
 program.command('login <url>')
     .description('Login to server')
+    .option('--username [username]', 'Username (optional)')
+    .option('--password [password]', 'Password (optional)')
     .action(actions.login);
 
-program.command('put <file> [files...]')
-    .option('-a --all', 'Also include hidden files and folders.', false)
-    .description('Put a file, last argument is destination if provided')
-    .action(actions.put);
+program.command('logout')
+    .description('Logout from server')
+    .action(actions.logout);
 
-program.command('get [file]')
+program.command('put <file|dir...>')
+    .option('-a --all', 'Also include hidden files and folders.', false)
+    .description('Puts a list of files or dirs to the destination. The last argument is destination dir')
+    .action(actions.put)
+    .on('--help', function() {
+        console.log();
+        console.log('  Examples:');
+        console.log();
+        console.log('    $ surfer put file.txt /                # puts to /file.txt');
+        console.log('    $ surfer put file.txt /data            # puts to /data/file.txt');
+        console.log('    $ surfer put dir /data                 # puts dir/* as /data/dir/*');
+        console.log('    $ surfer put dir/. /                   # puts dir/* as /app/data/*');
+        console.log('    $ surfer put dir1 dir2 file1 /         # puts as /dir1/* /dir2/* and /file');
+        console.log();
+    });
+
+program.command('get [file|dir]')
     .description('Get a file or directory listing')
     .action(actions.get);
 
@@ -31,9 +52,9 @@ program.parse(process.argv);
 if (!process.argv.slice(2).length) {
     program.outputHelp();
 } else { // https://github.com/tj/commander.js/issues/338
-    var knownCommand = program.commands.some(function (command) { return command._name === process.argv[2]; });
-    if (!knownCommand) {
-        console.error('Unknown command: ' + process.argv[2]);
-        process.exit(1);
-    }
+    // var knownCommand = program.commands.some(function (command) { return command._name === process.argv[2]; });
+    // if (!knownCommand) {
+    //     console.error('Unknown command: ' + process.argv[2]);
+    //     process.exit(1);
+    // }
 }