]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/tests/real-world/tools/upload-directory.js
Add tests for npm run scripts
[github/Chocobozzz/PeerTube.git] / server / tests / real-world / tools / upload-directory.js
1 'use strict'
2
3 const program = require('commander')
4 const eachSeries = require('async/eachSeries')
5 const exec = require('child_process').exec
6 const fs = require('fs')
7 const path = require('path')
8
9 program
10 .option('-u, --url <url>', 'Server url')
11 .option('-n, --username <username>', 'Username')
12 .option('-p, --password <token>', 'Password')
13 .option('-i, --directory <directory>', 'Videos directory absolute path')
14 .option('-d, --description <description>', 'Video description')
15 .option('-t, --tags <tags>', 'Video tags', list)
16 .parse(process.argv)
17
18 if (
19 !program.url ||
20 !program.username ||
21 !program.password ||
22 !program.directory ||
23 !program.description ||
24 !program.tags
25 ) {
26 throw new Error('All arguments are required.')
27 }
28
29 exec('node ./get-access-token -u "' + program.url + '" -n "' + program.username + '" -p "' + program.password + '"', function (err, stdout) {
30 if (err) throw err
31
32 const accessToken = stdout.replace('\n', '')
33
34 fs.readdir(program.directory, function (err, files) {
35 if (err) throw err
36
37 eachSeries(files, function (file, callbackEach) {
38 const video = {
39 tags: program.tags,
40 name: file,
41 description: program.description
42 }
43
44 let command = 'node ./upload'
45 command += ' -u "' + program.url + '"'
46 command += ' -a "' + accessToken + '"'
47 command += ' -n "' + video.name + '"'
48 command += ' -d "' + video.description + '"'
49 command += ' -t "' + video.tags.join(',') + '"'
50 command += ' -f "' + path.join(program.directory, file) + '"'
51
52 exec(command, function (err, stdout) {
53 if (err) console.log(err)
54
55 console.log(stdout)
56
57 return callbackEach()
58 })
59 })
60 })
61 })
62
63 // ----------------------------------------------------------------------------
64
65 function list (val) {
66 return val.split(',')
67 }