commit b6089a75ed750861c883a927d3ae7798bc30acb4 Author: amy Date: Sun Dec 22 20:25:09 2024 +0330 Initial commit 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/*