These are built on every commit, so may include incomplete/broken features. Take care.
-
windows/mac/linux
docker
debian/ubuntu
arch (aur git)
diff --git a/site/ts/main.ts b/site/ts/main.ts
index bc2abdde..d0ad0f5b 100644
--- a/site/ts/main.ts
+++ b/site/ts/main.ts
@@ -1,5 +1,6 @@
import { Modal } from "../../ts/modules/modal.js";
import { whichAnimationEvent } from "../../ts/modules/common.js";
+import { loadBuilds } from "./repo.js";
interface window extends Window {
animationEvent: string;
@@ -18,7 +19,7 @@ const debUnstableButton = document.getElementById("download-deb-unstable") as HT
debUnstableButton.onclick = debModal.toggle;
const stableSect = document.getElementById("sect-stable");
-const unstableSect = document.getElementById("sect-unstable");
+export const unstableSect = document.getElementById("sect-unstable");
const stableButton = document.getElementById("download-stable") as HTMLSpanElement;
const unstableButton = document.getElementById("download-unstable") as HTMLSpanElement;
@@ -51,4 +52,4 @@ const dockerUnstableButton = document.getElementById("download-docker-unstable")
dockerButton.onclick = dockerModal.toggle;
dockerUnstableButton.onclick = dockerModal.toggle;
-
+loadBuilds();
diff --git a/site/ts/repo.ts b/site/ts/repo.ts
new file mode 100644
index 00000000..efa09a83
--- /dev/null
+++ b/site/ts/repo.ts
@@ -0,0 +1,57 @@
+import { _get, _post, _delete } from "../../ts/modules/common.js";
+import { unstableSect } from "./main.js";
+
+const urlBase = "https://builds.hrfee.pw/repo/hrfee/jfa-go/latest/file/";
+const categories = {
+ "Windows (Tray)": {
+ "x64": "Windows"
+ },
+ "Linux (Tray)": {
+ "x64": "TrayIcon_Linux_x86_64.zip"
+ },
+ "Linux": {
+ "x64": "Linux_x86_64.zip",
+ "ARM (32-bit)": "Linux_arm.zip",
+ "ARM (64-bit)": "Linux_arm64.zip"
+ },
+ "macOS": {
+ "x64": "macOS_x86_64",
+ "ARM": "macOS_arm64"
+ }
+};
+
+export const loadBuilds = () => {
+ for (let buildName in categories) {
+ if (Object.keys(categories[buildName]).length == 1) {
+ const button = document.createElement("a") as HTMLAnchorElement;
+ button.classList.add("button", "~info", "mr-half", "mb-half", "lang-link");
+ button.target = "_blank";
+ button.textContent = buildName.toLowerCase();
+ button.href = urlBase + categories[buildName][Object.keys(categories[buildName])[0]];
+ unstableSect.querySelector(".row.col.flex.center").appendChild(button);
+ } else {
+ const dropdown = document.createElement("span") as HTMLSpanElement;
+ dropdown.tabIndex = 0;
+ dropdown.classList.add("dropdown");
+ let innerHTML = `
+
+ ${buildName.toLowerCase()}
+
+
+
+
+ `;
+ for (let arch in categories[buildName]) {
+ innerHTML += `
+
${arch}
+ `;
+ }
+ innerHTML += `
+
+
+ `;
+ dropdown.innerHTML = innerHTML;
+ unstableSect.querySelector(".row.col.flex.center").appendChild(dropdown);
+ }
+ }
+};