Commit 010fbd1

Anton Golub <antongolub@antongolub.com>
2023-10-10 21:01:58
feat: provide badge size customization
1 parent f8c29e3
src/main.ts
@@ -12,14 +12,18 @@ import { updateReadme } from './update-readme.js'
 import { updateBadges } from './update-badges.js'
 
 void (async function main() {
+  const { env } = process
   const argv = minimist(process.argv.slice(2), {
-    string: ['data', 'repo', 'token'],
+    string: ['data', 'repo', 'token', 'size', 'user'],
   })
-  const {GITHUB_TOKEN, GITHUB_USER, GITHUB_REPO} = process.env
-  const [username = GITHUB_USER] = argv._
-  const [owner, repo]: [string?, string?] = (argv.repo || GITHUB_REPO)?.split('/', 2) || []
-  const dataPath: string = argv.data ?? ''
-  const token = argv.token || GITHUB_TOKEN
+  const {
+    token = env.GITHUB_TOKEN,
+    repo: repository = env.GITHUB_REPO,
+    user: username = argv._[0] || env.GITHUB_USER,
+    data: dataPath = '',
+    size,
+  } = argv
+  const [owner, repo] = repository?.split('/', 2) || []
 
   const MyOctokit = Octokit.plugin(retry, throttling)
   const octokit = new MyOctokit({
@@ -97,6 +101,6 @@ void (async function main() {
 
   if (owner && repo) {
     await updateBadges(octokit, owner, repo, badges, oldJson, jsonSha)
-    await updateReadme(octokit, owner, repo, badges)
+    await updateReadme(octokit, owner, repo, badges, size)
   }
 })()
src/update-readme.ts
@@ -7,6 +7,7 @@ export async function updateReadme(
   owner: string,
   repo: string,
   badges: Badge[],
+  size: number | string = 64,
 ) {
   console.log('Loading README.md')
   const readme = await octokit.request<'readme'>(
@@ -32,7 +33,8 @@ export async function updateReadme(
     const badgesHtml = badges
       .map((badge) => {
         const desc = quoteAttr(badge.desc)
-        return `<a href="my-badges/${badge.id}.md"><img src="${badge.image}" alt="${desc}" title="${desc}" width="64"></a>`
+        // prettier-ignore
+        return `<a href="my-badges/${badge.id}.md"><img src="${badge.image}" alt="${desc}" title="${desc}" width="${parseInt(size + '')}"></a>`
       })
       .join('\n')
 
README.md
@@ -91,6 +91,15 @@ jobs:
 
 - Start **my-badges** workflow, or wait for it to run automatically.
 
+## Configuration
+| Param   | ENV alias      | Description                                                                                | Default |
+|---------|----------------|--------------------------------------------------------------------------------------------|---------|
+| `token` | `GITHUB_TOKEN` | Auth token                                                                                 |         |
+| `user`  | `GITHUB_USER`  | Username                                                                                   |         |
+| `repo`  | `GITHUB_REPO`  | Repository name                                                                            |         |
+| `data`  |                | Path to JSON to generate badges. If empty, required data will be obtained from the GH API  |         |
+| `size`  |                | Badge size for README.md, px                                                               | 64      |
+
 ## Contributing badges
 
 If you want to contribute a badge: