From a7a9af8854aa3c2b727e0a6bbea7d991dff774dd Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Mon, 22 Jun 2020 01:07:37 +1200 Subject: [PATCH] Remove updater page --- src/lib/constants.js | 5 --- src/site/api/admin.js | 62 ----------------------------------- src/site/pug/admin_update.pug | 32 ------------------ 3 files changed, 99 deletions(-) delete mode 100644 src/site/api/admin.js delete mode 100644 src/site/pug/admin_update.pug diff --git a/src/lib/constants.js b/src/lib/constants.js index 9b5eded..bed8425 100644 --- a/src/lib/constants.js +++ b/src/lib/constants.js @@ -175,10 +175,6 @@ let constants = { } ], - settings: { - enable_updater_page: false - }, - featured_profiles: [ ], @@ -202,7 +198,6 @@ let constants = { image_cache_control: `public, max-age=${7*24*60*60}`, resource_cache_time: 30*60*1000, instance_list_cache_time: 3*60*1000, - updater_cache_time: 2*60*1000, cache_sweep_interval: 3*60*1000, csrf_time: 60*60*1000, self_blocked_status: { diff --git a/src/site/api/admin.js b/src/site/api/admin.js deleted file mode 100644 index cb96b43..0000000 --- a/src/site/api/admin.js +++ /dev/null @@ -1,62 +0,0 @@ -const child_process = require("child_process") -const constants = require("../../lib/constants") -const {render} = require("pinski/plugins") - -function run(command) { - return new Promise((resolve, reject) => { - child_process.exec(command, {encoding: "utf8"}, (error, stdout, stderr) => { - if (error) reject(error) - else resolve({stdout, stderr}) - }) - }) -} - -let lastFetchRunAt = 0 -async function fetch() { - if (lastFetchRunAt + constants.caching.updater_cache_time < Date.now()) { - await run("git fetch origin") - lastFetchRunAt = Date.now() - } -} - -module.exports = [ - {route: "/admin/updater", methods: ["GET"], code: async () => { - if (constants.settings.enable_updater_page) { - let {stdout: current} = await run("git rev-parse --abbrev-ref HEAD") - current = current.trim() - let {stdout: upstream} = await run("git rev-parse --abbrev-ref '@{u}'") - upstream = upstream.trim() - if (current !== "master" || upstream !== "origin/master") { - return render(200, "pug/admin_update.pug", {error: `Refusing to automatically update: current is ${current}, upstream is ${upstream}, need master and origin/master`}) - } else { - await fetch() - let {stdout: log} = await run("git log --oneline origin/master ^master") - log = log.trim() - const numberOfCommits = log === "" ? 0 : log.split("\n").length - const {stdout: changedFiles} = await run("git diff master origin/master --name-only") - const changedFilesList = changedFiles.trim().split("\n") - let requiresRestart = false - let requiresDeps = false - if (changedFilesList.some(c => c.startsWith("src/lib") || c === "server.js")) { - requiresRestart = true - } - if (changedFilesList.some(c => c === "package.json" || c === "package-lock.json")) { - requiresDeps = true - requiresRestart = true - } - const formattedLog = log.split("\n").map(line => { - if (!line) return line // skip for empty string - const [hash, message] = line.match(/(\w+) (.*)$/).slice(1) - return {hash, message} - }) - return render(200, "pug/admin_update.pug", {formattedLog, numberOfCommits, requiresDeps, requiresRestart}) - } - } else { - return render(403, "pug/friendlyerror.pug", { - statusCode: 403, - title: "Updater page disabled", - message: "Updater page disabled" - }) - } - }} -] diff --git a/src/site/pug/admin_update.pug b/src/site/pug/admin_update.pug deleted file mode 100644 index b6a99a2..0000000 --- a/src/site/pug/admin_update.pug +++ /dev/null @@ -1,32 +0,0 @@ -//- Needs {error} or {formattedLog, numberOfCommits, requiresDeps, requiresRestart} - -doctype html -html - head - title Updater | Bibliogram - include includes/head - body.updater-page - if error - h1 Aw man. - div= error - else - h1 Bibliogram updater - if numberOfCommits > 0 - div You are #{numberOfCommits} #{numberOfCommits === 1 ? "commit" : "commits"} behind (most recent first): - div.commits - each line in formattedLog - div.commit - code.hash= line.hash - span.message= line.message - div - if requiresDeps - span.attention You must run #[code npm install] after pulling. - else - span No changes to dependencies. - div - if requiresRestart - span.attention You must restart Bibliogram after pulling. - else - span You do not need to restart Bibliogram after pulling. - else - div You are running the latest version. Hurrah!