From 505e42cfc0b74c08ff7cd90f79bde6a35c57ab4e Mon Sep 17 00:00:00 2001 From: Ruud Boon Date: Wed, 8 Jan 2020 13:17:29 +0100 Subject: [PATCH 1/2] Added FreeBSD Port version shield. See https://github.com/badges/shields/issues/1693 --- services/freebsd/port.service.js | 66 ++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 services/freebsd/port.service.js diff --git a/services/freebsd/port.service.js b/services/freebsd/port.service.js new file mode 100644 index 0000000000000..c220fa510617b --- /dev/null +++ b/services/freebsd/port.service.js @@ -0,0 +1,66 @@ +'use strict' + +const { renderVersionBadge } = require('../version') +const { BaseService, InvalidResponse } = require('..') + +module.exports = class FreebsdPort extends BaseService { + static get category() { + return 'version' + } + + static get route() { + return { + base: 'freebsd', + pattern: ':category/:name', + } + } + + static get examples() { + return [ + { + title: 'FreeBSD port version', + namedParams: { + category: 'www', + name: 'phalcon4', + }, + staticPreview: renderVersionBadge({ version: '4.0.0' }), + }, + ] + } + + static get defaultBadgeData() { + return { label: 'freebsd port' } + } + + async fetch({ category, name }) { + return this._request({ + url: `https://raw.githubusercontent.com/freebsd/freebsd-ports/master/${category}/${name}/Makefile`, + }) + } + + async handle({ category, name }) { + const { buffer } = await this.fetch({ + category, + name, + }) + try { + const portversion = buffer.match(/PORTVERSION=\t([0-9.a-zA-Z]+)/im) + const distversion = buffer.match(/DISTVERSION=\t([0-9.a-zA-Z]+)/im) + let v = 'unknown' + if (portversion && portversion.length > 0) { + v = portversion[1] + } else if (distversion && distversion.length > 0) { + v = distversion[1] + } else { + throw new InvalidResponse({ + prettyMessage: 'metadata in unexpected format', + }) + } + return renderVersionBadge({ version: v }) + } catch (e) { + throw new InvalidResponse({ + prettyMessage: 'metadata in unexpected format', + }) + } + } +} From b888e7c6f7416743117aa39ce55db5d0f7c23f28 Mon Sep 17 00:00:00 2001 From: Ruud Boon Date: Wed, 8 Jan 2020 13:30:38 +0100 Subject: [PATCH 2/2] Make LGTM happy --- services/freebsd/port.service.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/freebsd/port.service.js b/services/freebsd/port.service.js index c220fa510617b..22493cceedc7e 100644 --- a/services/freebsd/port.service.js +++ b/services/freebsd/port.service.js @@ -46,7 +46,7 @@ module.exports = class FreebsdPort extends BaseService { try { const portversion = buffer.match(/PORTVERSION=\t([0-9.a-zA-Z]+)/im) const distversion = buffer.match(/DISTVERSION=\t([0-9.a-zA-Z]+)/im) - let v = 'unknown' + let v if (portversion && portversion.length > 0) { v = portversion[1] } else if (distversion && distversion.length > 0) {