|
1 | 1 | const config = require("config");
|
2 | 2 | const fs = require("fs-extra");
|
3 | 3 |
|
4 |
| -const redis = require("models/redis"); |
5 |
| -const client = new redis(); |
| 4 | +const client = require("models/client"); |
6 | 5 | const documentation = require("./documentation/build");
|
7 | 6 | const templates = require("./templates");
|
8 | 7 | const folders = require("./templates/folders");
|
9 | 8 | const async = require("async");
|
10 | 9 | const clfdate = require("helper/clfdate");
|
| 10 | +const scheduler = require("./scheduler"); |
| 11 | +const flush = require("documentation/tools/flush-cache"); |
| 12 | +const configureLocalBlogs = require("./configure-local-blogs"); |
11 | 13 |
|
12 |
| -const log = (...arguments) => |
13 |
| - console.log.apply(null, [clfdate(), "Setup:", ...arguments]); |
| 14 | +const log = (...args) => |
| 15 | + console.log.apply(null, [clfdate(), "Setup:", ...args]); |
14 | 16 |
|
15 | 17 | function main(callback) {
|
16 | 18 | async.series(
|
@@ -72,25 +74,57 @@ function main(callback) {
|
72 | 74 |
|
73 | 75 | async function () {
|
74 | 76 | // The docker build stage for production runs this script ahead of time
|
75 |
| - if (config.environment === "development") { |
76 |
| - await documentation({ watch: true }); |
77 |
| - } else { |
78 |
| - log("Skipping documentation build"); |
79 |
| - } |
| 77 | + if (config.environment !== "development") return; |
| 78 | + await documentation({ watch: true }); |
80 | 79 | },
|
81 | 80 |
|
82 | 81 | async function () {
|
83 |
| - if (config.environment === "production" && config.master) { |
84 |
| - log("Building folders"); |
85 |
| - try { |
86 |
| - await folders(); |
87 |
| - log("Built folders"); |
88 |
| - } catch (e) { |
89 |
| - log("Error building folders", e); |
| 82 | + if (config.environment !== "production") return; |
| 83 | + if (!config.master) return; |
| 84 | + |
| 85 | + log("Building folders"); |
| 86 | + try { |
| 87 | + await folders(); |
| 88 | + log("Built folders"); |
| 89 | + } catch (e) { |
| 90 | + log("Error building folders", e); |
| 91 | + } |
| 92 | + }, |
| 93 | + |
| 94 | + function (callback) { |
| 95 | + if (!config.master) return callback(); |
| 96 | + |
| 97 | + // Launch scheduler for background tasks, like backups, emails |
| 98 | + scheduler(); |
| 99 | + callback(); |
| 100 | + }, |
| 101 | + |
| 102 | + function (callback) { |
| 103 | + if (!config.master) return callback(); |
| 104 | + |
| 105 | + // Run any initialization that clients need |
| 106 | + // Google Drive will renew any webhooks, e.g. |
| 107 | + for (const { init, display_name } of Object.values( |
| 108 | + require("clients") |
| 109 | + )) { |
| 110 | + if (init) { |
| 111 | + console.log(clfdate(), display_name + " client:", "Initializing"); |
| 112 | + init(); |
90 | 113 | }
|
91 |
| - } else { |
92 |
| - log("Skipping folder build"); |
93 | 114 | }
|
| 115 | + callback(); |
| 116 | + }, |
| 117 | + |
| 118 | + function (callback) { |
| 119 | + // Flush the cache of the public site and documentation |
| 120 | + flush(); |
| 121 | + |
| 122 | + callback(); |
| 123 | + }, |
| 124 | + |
| 125 | + function (callback) { |
| 126 | + if (config.environment !== "development") return callback(); |
| 127 | + configureLocalBlogs(); |
94 | 128 | },
|
95 | 129 | ],
|
96 | 130 | callback
|
|
0 commit comments