From b6089a75ed750861c883a927d3ae7798bc30acb4 Mon Sep 17 00:00:00 2001 From: amy Date: Sun, 22 Dec 2024 20:25:09 +0330 Subject: [PATCH] Initial commit --- .github/workflows/deploy.yml | 41 +++++++++++++++++++++++++++++++++ .gitignore | 4 ++++ README.md | 37 +++++++++++++++++++++++++++++ lune.config.js | 9 ++++++++ package.json | 8 +++++++ plugins/hello-world/index.jsx | 12 ++++++++++ plugins/hello-world/plugin.json | 5 ++++ pnpm-workspace.yaml | 2 ++ 8 files changed, 118 insertions(+) create mode 100644 .github/workflows/deploy.yml create mode 100644 .gitignore create mode 100644 README.md create mode 100644 lune.config.js create mode 100644 package.json create mode 100644 plugins/hello-world/index.jsx create mode 100644 plugins/hello-world/plugin.json create mode 100644 pnpm-workspace.yaml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..35104b4 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,41 @@ +name: Build and deploy + +on: + push: + branches: [main] + +jobs: + deploy: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: "18" + + - name: Deps + run: | + npm install --global pnpm + pnpm i + + - name: Build plugin(s) + run: pnpm lune ci + + - name: Copy additional files + run: | + cp README.md dist/README.md + printf -- "---\npermalink: /404.html\n---\n" > dist/404.md + printf -- "> **Note:** You accessed a link that returned a 404, probably by clicking one of the plugin links. You're supposed to copy the link address and add it into shelter.\n\n" >> dist/404.md + cat README.md >> dist/404.md + + # Documentation: https://github.com/peaceiris/actions-gh-pages + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./dist + # Makes it so the md files in the previous step get processed by GitHub Pages + enable_jekyll: true diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..486ad34 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +node_modules +dist +.pnpm-debug.log +.idea diff --git a/README.md b/README.md new file mode 100644 index 0000000..dc673c1 --- /dev/null +++ b/README.md @@ -0,0 +1,37 @@ +# [Your name here]'s shelter plugins +If you're reading this you should either change this README, +or you should run `npx degit uwu/shelter-template shelter-plugins`! + +## Getting started +You should be using [pnpm](https://pnpm.io/) with this template ideally. + +To install the dependencies and debug `hello-world` run: +```sh +pnpm i +pnpm lune dev plugins/hello-world +``` + +Ensure that Lune Dev Mode is enabled in Discord so that lune can connect to it. + +Now you can start debugging. The plugin will automatically reload after every change. + +## Installing +To then install your finished plugin in shelter you can either rely on GitHub pages and it's workflow or you can build and host them here temporarily. + +### Building locally +To build and host your plugins locally run: +```sh +pnpm lune ci +npx http-server dist/ --cors +``` +Then you can install your plugin in shelter with this URL `http://localhost:8080/hello-world`. + +### Publishing via GitHub +If you have published this repo on GitHub the plugins will be built after every commit. + +For the GitHub action to run flawlessly, make sure you have the following setting enabled: +`Repo settings > Actions > General > Workflow permissions > Read and write permissions` + +And for it to be hosted correctly you need to configure the `gh-pages` branch after its been created by the GitHub action. You can do this in `Repo settings > Pages > Branch`. + +If this worked, you will be able to install the plugin via `https://.github.io//hello-world`. diff --git a/lune.config.js b/lune.config.js new file mode 100644 index 0000000..105b199 --- /dev/null +++ b/lune.config.js @@ -0,0 +1,9 @@ +// Welcome to your Lune config file! +// You can view documentation on Lune here: +// https://github.com/uwu/shelter/tree/main/packages/lune + +import { defineConfig } from "@uwu/lune"; + +export default defineConfig({ + // configure lune here +}); diff --git a/package.json b/package.json new file mode 100644 index 0000000..0b5136c --- /dev/null +++ b/package.json @@ -0,0 +1,8 @@ +{ + "devDependencies": { + "@uwu/lune": "^1.2.1", + "@uwu/shelter-defs": "^1.1.0" + }, + "type": "module", + "workspaces": ["plugins/*"] +} diff --git a/plugins/hello-world/index.jsx b/plugins/hello-world/index.jsx new file mode 100644 index 0000000..c75302d --- /dev/null +++ b/plugins/hello-world/index.jsx @@ -0,0 +1,12 @@ +const { + util: { log } +} = shelter; + +export function onLoad() { + // you can safely run onLoad actions at the top level! + log("Hello, World from shelter!") +} + +export function onUnload() { + log("Goodbye, World from shelter!") +} diff --git a/plugins/hello-world/plugin.json b/plugins/hello-world/plugin.json new file mode 100644 index 0000000..a3a4e1e --- /dev/null +++ b/plugins/hello-world/plugin.json @@ -0,0 +1,5 @@ +{ + "name": "hello-world", + "author": "Your name here", + "description": "An example shelter plugin" +} \ No newline at end of file diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..0fa0c2c --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +packages: + - plugins/*