mirror of
https://github.com/NotAKidoS/NAK_CVR_Mods.git
synced 2025-09-04 23:39:22 +00:00
Compare commits
5 commits
364de89b30
...
dafff6a9a2
Author | SHA1 | Date | |
---|---|---|---|
|
dafff6a9a2 | ||
|
68d7c22b7c | ||
|
3c81f71d15 | ||
|
0564de3ebf | ||
|
7030ed8650 |
3 changed files with 94 additions and 0 deletions
55
.github/scripts/update-modlist.js
vendored
Normal file
55
.github/scripts/update-modlist.js
vendored
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
|
const ROOT = '.';
|
||||||
|
const EXPERIMENTAL = '.Experimental';
|
||||||
|
const README_PATH = 'README.md';
|
||||||
|
const MARKER_START = '<!-- BEGIN MOD LIST -->';
|
||||||
|
const MARKER_END = '<!-- END MOD LIST -->';
|
||||||
|
|
||||||
|
function getModFolders(baseDir) {
|
||||||
|
const entries = fs.readdirSync(baseDir, { withFileTypes: true });
|
||||||
|
return entries
|
||||||
|
.filter(entry => entry.isDirectory())
|
||||||
|
.map(entry => path.join(baseDir, entry.name))
|
||||||
|
.filter(dir => fs.existsSync(path.join(dir, 'README.md')));
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatTable(mods, baseDir) {
|
||||||
|
if (mods.length === 0) return '';
|
||||||
|
|
||||||
|
let rows = mods.map(modPath => {
|
||||||
|
const modName = path.basename(modPath);
|
||||||
|
const readmeLink = path.join(modPath, 'README.md');
|
||||||
|
const zipLink = path.join(modPath, `${modName}.zip`);
|
||||||
|
return `| [${modName}](${readmeLink}) | [Download](${zipLink}) |`;
|
||||||
|
});
|
||||||
|
|
||||||
|
return [
|
||||||
|
`### ${baseDir === EXPERIMENTAL ? 'Experimental Mods' : 'Released Mods'}`,
|
||||||
|
'',
|
||||||
|
'| Name | Download |',
|
||||||
|
'|------|----------|',
|
||||||
|
...rows,
|
||||||
|
''
|
||||||
|
].join('\n');
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateReadme(modListSection) {
|
||||||
|
const readme = fs.readFileSync(README_PATH, 'utf8');
|
||||||
|
const before = readme.split(MARKER_START)[0];
|
||||||
|
const after = readme.split(MARKER_END)[1];
|
||||||
|
|
||||||
|
const newReadme = `${before}${MARKER_START}\n\n${modListSection}\n${MARKER_END}${after}`;
|
||||||
|
fs.writeFileSync(README_PATH, newReadme);
|
||||||
|
}
|
||||||
|
|
||||||
|
const mainMods = getModFolders(ROOT).filter(dir => !dir.startsWith(EXPERIMENTAL));
|
||||||
|
const experimentalMods = getModFolders(EXPERIMENTAL);
|
||||||
|
|
||||||
|
const tableContent = [
|
||||||
|
formatTable(mainMods, ROOT),
|
||||||
|
formatTable(experimentalMods, EXPERIMENTAL)
|
||||||
|
].join('\n');
|
||||||
|
|
||||||
|
updateReadme(tableContent);
|
35
.github/workflows/update-modlist.yml
vendored
Normal file
35
.github/workflows/update-modlist.yml
vendored
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
name: Update Mod List
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- 'update-modlist.js'
|
||||||
|
- '.github/workflows/update-modlist.yml'
|
||||||
|
- 'README.md'
|
||||||
|
- '**/README.md'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update-modlist:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repo
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up Node.js
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: '20'
|
||||||
|
|
||||||
|
- name: Run mod list updater
|
||||||
|
run: node update-modlist.js
|
||||||
|
|
||||||
|
- name: Commit and push changes
|
||||||
|
run: |
|
||||||
|
git config user.name "github-actions[bot]"
|
||||||
|
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||||
|
git remote set-url origin https://x-access-token:${{ secrets.GH_TOKEN }}@github.com/${{ github.repository }}
|
||||||
|
git add README.md
|
||||||
|
git commit -m "[NAK_CVR_Mods] Update mod list in README" || echo "No changes to commit"
|
||||||
|
git push
|
|
@ -1,5 +1,7 @@
|
||||||
## NotAKids ChilloutVR Mods
|
## NotAKids ChilloutVR Mods
|
||||||
|
|
||||||
|
<!-- BEGIN MOD LIST -->
|
||||||
|
|
||||||
## Released Mods
|
## Released Mods
|
||||||
|
|
||||||
| Mod Name | README | Download | Description |
|
| Mod Name | README | Download | Description |
|
||||||
|
@ -37,6 +39,8 @@
|
||||||
| VisualCloneFix | [README](https://github.com/NotAKidOnSteam/NAK_CVR_Mods/tree/main/VisualCloneFix) | [Download](https://github.com/NotAKidOnSteam/NAK_CVR_Mods/releases/latest/download/VisualCloneFix.dll) | Fixes the Visual Clone system. |
|
| VisualCloneFix | [README](https://github.com/NotAKidOnSteam/NAK_CVR_Mods/tree/main/VisualCloneFix) | [Download](https://github.com/NotAKidOnSteam/NAK_CVR_Mods/releases/latest/download/VisualCloneFix.dll) | Fixes the Visual Clone system. |
|
||||||
| WhereAmIPointing | [README](https://github.com/NotAKidOnSteam/NAK_CVR_Mods/tree/main/WhereAmIPointing) | [Download](https://github.com/NotAKidOnSteam/NAK_CVR_Mods/releases/latest/download/WhereAmIPointing.dll) | Makes your controller rays always visible when the menus are open. |
|
| WhereAmIPointing | [README](https://github.com/NotAKidOnSteam/NAK_CVR_Mods/tree/main/WhereAmIPointing) | [Download](https://github.com/NotAKidOnSteam/NAK_CVR_Mods/releases/latest/download/WhereAmIPointing.dll) | Makes your controller rays always visible when the menus are open. |
|
||||||
|
|
||||||
|
<!-- END MOD LIST -->
|
||||||
|
|
||||||
# How To Install
|
# How To Install
|
||||||
|
|
||||||
The majority of modifications found in this repository are reviewed and made available through the [ChilloutVR Modding Group](https://discord.gg/dndGPM3bxu).
|
The majority of modifications found in this repository are reviewed and made available through the [ChilloutVR Modding Group](https://discord.gg/dndGPM3bxu).
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue