aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorChocobozzz <florian.bigard@gmail.com>2016-11-22 22:12:13 +0100
committerChocobozzz <florian.bigard@gmail.com>2016-11-22 22:12:13 +0100
commit93d4a3b551f8828090b8fdee9fea1f935669dcc7 (patch)
tree01b6fb754c033e3525c1cce08c2ddd81b9352117
parent04968ab47717f0c90a3c05dc71fb24fc78599973 (diff)
downloadPeerTube-93d4a3b551f8828090b8fdee9fea1f935669dcc7.tar.gz
PeerTube-93d4a3b551f8828090b8fdee9fea1f935669dcc7.tar.zst
PeerTube-93d4a3b551f8828090b8fdee9fea1f935669dcc7.zip
Add script when the host/port of a pod change
-rw-r--r--package.json1
-rwxr-xr-xscripts/update-host.js51
2 files changed, 52 insertions, 0 deletions
diff --git a/package.json b/package.json
index 93c748cd3..300af4867 100644
--- a/package.json
+++ b/package.json
@@ -32,6 +32,7 @@
32 "start": "node server", 32 "start": "node server",
33 "check": "scripty", 33 "check": "scripty",
34 "upgrade": "scripty", 34 "upgrade": "scripty",
35 "update-host": "scripty",
35 "test": "scripty", 36 "test": "scripty",
36 "help": "scripty", 37 "help": "scripty",
37 "postinstall": "cd client && npm install" 38 "postinstall": "cd client && npm install"
diff --git a/scripts/update-host.js b/scripts/update-host.js
new file mode 100755
index 000000000..8a17f2402
--- /dev/null
+++ b/scripts/update-host.js
@@ -0,0 +1,51 @@
1#!/usr/bin/env node
2
3'use strict'
4
5// TODO: document this script
6
7const fs = require('fs')
8const mongoose = require('mongoose')
9const parseTorrent = require('parse-torrent')
10
11const constants = require('../server/initializers/constants')
12const database = require('../server/initializers/database')
13
14database.connect()
15
16const friends = require('../server/lib/friends')
17const Video = mongoose.model('Video')
18
19friends.hasFriends(function (err, hasFriends) {
20 if (err) throw err
21
22 if (hasFriends === true) {
23 console.log('Cannot update host because you have friends!')
24 process.exit(-1)
25 }
26
27 console.log('Updating videos host in database.')
28 Video.update({ }, { podHost: constants.CONFIG.WEBSERVER.HOST }, { multi: true }, function (err) {
29 if (err) throw err
30
31 console.log('Updating torrent files.')
32 Video.find().lean().exec(function (err, videos) {
33 if (err) throw err
34
35 videos.forEach(function (video) {
36 const torrentName = video._id + '.torrent'
37 const torrentPath = constants.CONFIG.STORAGE.TORRENTS_DIR + torrentName
38 const filename = video._id + video.extname
39
40 const parsed = parseTorrent(fs.readFileSync(torrentPath))
41 parsed.announce = [ constants.CONFIG.WEBSERVER.WS + '://' + constants.CONFIG.WEBSERVER.HOST + '/tracker/socket' ]
42 parsed.urlList = [ constants.CONFIG.WEBSERVER.URL + constants.STATIC_PATHS.WEBSEED + filename ]
43
44 const buf = parseTorrent.toTorrentFile(parsed)
45 fs.writeFileSync(torrentPath, buf)
46 })
47
48 process.exit(0)
49 })
50 })
51})