show last commit hash alongside server version in footer
authorRigel Kent <sendmemail@rigelk.eu>
Sat, 29 Sep 2018 17:53:49 +0000 (19:53 +0200)
committerChocobozzz <me@florianbigard.com>
Mon, 1 Oct 2018 12:31:01 +0000 (14:31 +0200)
client/src/app/app.component.html
client/src/app/app.component.ts
server/controllers/api/config.ts
server/helpers/utils.ts
server/tools/cli.ts
shared/models/server/server-config.model.ts

index 958c131f75d67ae65266c6e746152efac5fa1911..03f7e88ed6a9249ad5fa4ce827dbff3e2125ac00 100644 (file)
@@ -29,7 +29,7 @@
       </div>
 
       <footer class="row">
-        <a href="https://joinpeertube.org" title="PeerTube website" target="_blank" rel="noopener noreferrer">PeerTube v{{ serverVersion }}</a>&nbsp;-&nbsp;
+        <a href="https://joinpeertube.org" title="PeerTube website" target="_blank" rel="noopener noreferrer">PeerTube v{{ serverVersion }}{{ serverCommit }}</a>&nbsp;-&nbsp;
         <a href="https://github.com/Chocobozzz/PeerTube/blob/develop/LICENSE" title="PeerTube license" target="_blank" rel="noopener noreferrer">CopyLeft 2015-2018</a>
       </footer>
     </div>
index 907bc583b1ec8ae8517c8027cd378ca847c148ac..29b02032f8fdbf3c43b5d0a86f31d4fdfb9284fb 100644 (file)
@@ -45,6 +45,11 @@ export class AppComponent implements OnInit {
     return this.serverService.getConfig().serverVersion
   }
 
+  get serverCommit () {
+    const commit = this.serverService.getConfig().serverCommit || ''
+    return (commit !== '') ? '...' + commit : commit
+  }
+
   get instanceName () {
     return this.serverService.getConfig().instance.name
   }
index 95549b7240fa64d90b0fa9c702f6dbdf7493c4b1..633cf5e34ef7beff34d519a70ac55b095cc6d2d9 100644 (file)
@@ -10,6 +10,7 @@ import { customConfigUpdateValidator } from '../../middlewares/validators/config
 import { ClientHtml } from '../../lib/client-html'
 import { auditLoggerFactory, CustomConfigAuditView, getAuditIdFromRes } from '../../helpers/audit-logger'
 import { remove, writeJSON } from 'fs-extra'
+import { version } from '../../tools/cli'
 
 const packageJSON = require('../../../../package.json')
 const configRouter = express.Router()
@@ -38,9 +39,12 @@ configRouter.delete('/custom',
   asyncMiddleware(deleteCustomConfig)
 )
 
+let serverCommit: string
 async function getConfig (req: express.Request, res: express.Response, next: express.NextFunction) {
   const allowed = await isSignupAllowed()
   const allowedForCurrentIP = isSignupAllowedForCurrentIP(req.ip)
+  serverCommit = (serverCommit) ? serverCommit : version()
+  if (serverCommit === packageJSON.version) serverCommit = ''
 
   const enabledResolutions = Object.keys(CONFIG.TRANSCODING.RESOLUTIONS)
    .filter(key => CONFIG.TRANSCODING.ENABLED === CONFIG.TRANSCODING.RESOLUTIONS[key] === true)
@@ -58,6 +62,7 @@ async function getConfig (req: express.Request, res: express.Response, next: exp
       }
     },
     serverVersion: packageJSON.version,
+    serverCommit,
     signup: {
       allowed,
       allowedForCurrentIP,
index a42474417769c4aeb97f9c8b5cf0b3e8757d7afc..f5bf6de561946563fec346fc8fabf2395711be47 100644 (file)
@@ -54,6 +54,18 @@ function getSecureTorrentName (originalName: string) {
   return sha256(originalName) + '.torrent'
 }
 
+function getVersion () {
+  const tag = require('child_process')
+    .execSync('[[ ! -d .git ]] || git name-rev --name-only --tags --no-undefined HEAD 2>/dev/null || true', { stdio: [0,1,2] })
+  if (tag) return tag.replace(/^v/, '')
+
+  const version = require('child_process')
+    .execSync('[[ ! -d .git ]] || git rev-parse --short HEAD').toString().trim()
+  if (version) return version
+
+  return require('../../../package.json').version
+}
+
 // ---------------------------------------------------------------------------
 
 export {
@@ -62,5 +74,6 @@ export {
   getFormattedObjects,
   getSecureTorrentName,
   getServerActor,
+  getVersion,
   generateVideoTmpPath
 }
index 9a170d4da59ae35c023ca60e454fe1f7ee85743e..87d1512a3b8fdc394b4075a350b395dbe8727d71 100644 (file)
@@ -1,17 +1,8 @@
 const config = require('application-config')('PeerTube/CLI')
 const netrc = require('netrc-parser').default
+import { getVersion } from '../helpers/utils'
 
-const version = () => {
-  const tag = require('child_process')
-    .execSync('[[ ! -d .git ]] || git name-rev --name-only --tags --no-undefined HEAD 2>/dev/null || true', { stdio: [0,1,2] })
-  if (tag) return tag
-
-  const version = require('child_process')
-    .execSync('[[ ! -d .git ]] || git rev-parse --short HEAD').toString().trim()
-  if (version) return version
-
-  return require('../../../package.json').version
-}
+const version = getVersion
 
 let settings = {
   remotes: [],
index e0ff8c07def4755343fb4f56178d01b479e2b550..91196c1eb818adcba88a4ef959e65443bf7d94c1 100644 (file)
@@ -2,6 +2,7 @@ import { NSFWPolicyType } from '../videos/nsfw-policy.type'
 
 export interface ServerConfig {
   serverVersion: string
+  serverCommit?: string
 
   instance: {
     name: string