mirror of https://github.com/msfjarvis/adx.git
Deploying to gh-pages from @ msfjarvis/adx@829fc7b6ee 🚀
This commit is contained in:
commit
d1706f74b2
|
@ -0,0 +1,245 @@
|
|||
/* Code modified from the blender website
|
||||
* https://www.blender.org/wp-content/themes/bthree/assets/js/get_os.js?x82196
|
||||
*/
|
||||
|
||||
let options = {
|
||||
windows64: "x86_64-pc-windows",
|
||||
windows32: "i686-pc-windows",
|
||||
windowsArm: "aarch64-pc-windows",
|
||||
|
||||
mac64: "x86_64-apple",
|
||||
mac32: "i686-apple",
|
||||
macSilicon: "aarch64-apple",
|
||||
|
||||
linux64: "x86_64-unknown-linux",
|
||||
linux32: "i686-unknown-linux",
|
||||
linuxArm: "aarch64-unknown-linux",
|
||||
|
||||
// ios: "ios",
|
||||
// android: "linux-android",
|
||||
// freebsd: "freebsd",
|
||||
};
|
||||
|
||||
function isAppleSilicon() {
|
||||
try {
|
||||
var glcontext = document.createElement("canvas").getContext("webgl");
|
||||
var debugrenderer = glcontext
|
||||
? glcontext.getExtension("WEBGL_debug_renderer_info")
|
||||
: null;
|
||||
var renderername =
|
||||
(debugrenderer &&
|
||||
glcontext.getParameter(debugrenderer.UNMASKED_RENDERER_WEBGL)) ||
|
||||
"";
|
||||
if (renderername.match(/Apple M/) || renderername.match(/Apple GPU/)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
function getOS() {
|
||||
var OS = options.windows64.default;
|
||||
var userAgent = navigator.userAgent;
|
||||
var platform = navigator.platform;
|
||||
|
||||
if (navigator.appVersion.includes("Win")) {
|
||||
if (
|
||||
!userAgent.includes("Windows NT 5.0") &&
|
||||
!userAgent.includes("Windows NT 5.1") &&
|
||||
(userAgent.indexOf("Win64") > -1 ||
|
||||
platform == "Win64" ||
|
||||
userAgent.indexOf("x86_64") > -1 ||
|
||||
userAgent.indexOf("x86_64") > -1 ||
|
||||
userAgent.indexOf("amd64") > -1 ||
|
||||
userAgent.indexOf("AMD64") > -1 ||
|
||||
userAgent.indexOf("WOW64") > -1)
|
||||
) {
|
||||
OS = options.windows64;
|
||||
} else {
|
||||
if (
|
||||
window.external &&
|
||||
window.external.getHostEnvironmentValue &&
|
||||
window.external
|
||||
.getHostEnvironmentValue("os-architecture")
|
||||
.includes("ARM64")
|
||||
) {
|
||||
OS = options.windowsArm;
|
||||
} else {
|
||||
try {
|
||||
var canvas = document.createElement("canvas");
|
||||
var gl = canvas.getContext("webgl");
|
||||
|
||||
var debugInfo = gl.getExtension("WEBGL_debug_renderer_info");
|
||||
var renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
|
||||
if (renderer.includes("Qualcomm")) OS = options.windowsArm;
|
||||
} catch (e) {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//MacOS, MacOS X, macOS
|
||||
if (navigator.appVersion.includes("Mac")) {
|
||||
if (
|
||||
navigator.userAgent.includes("OS X 10.5") ||
|
||||
navigator.userAgent.includes("OS X 10.6")
|
||||
) {
|
||||
OS = options.mac32;
|
||||
} else {
|
||||
OS = options.mac64;
|
||||
|
||||
const isSilicon = isAppleSilicon();
|
||||
if (isSilicon) {
|
||||
OS = options.macSilicon;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// linux
|
||||
if (platform.includes("Linux")) {
|
||||
OS = options.linux64;
|
||||
// FIXME: Can we find out whether linux 32-bit or ARM are used?
|
||||
}
|
||||
|
||||
// if (
|
||||
// userAgent.includes("iPad") ||
|
||||
// userAgent.includes("iPhone") ||
|
||||
// userAgent.includes("iPod")
|
||||
// ) {
|
||||
// OS = options.ios;
|
||||
// }
|
||||
// if (platform.toLocaleLowerCase().includes("freebsd")) {
|
||||
// OS = options.freebsd;
|
||||
// }
|
||||
|
||||
return OS;
|
||||
}
|
||||
|
||||
let os = getOS();
|
||||
window.os = os;
|
||||
|
||||
// Unhide and hydrate selector with events
|
||||
const archSelect = document.querySelector(".arch-select");
|
||||
if (archSelect) {
|
||||
archSelect.classList.remove("hidden");
|
||||
const selector = document.querySelector("#install-arch-select");
|
||||
if (selector) {
|
||||
selector.addEventListener("change", onArchChange);
|
||||
}
|
||||
}
|
||||
|
||||
// Hydrate tab buttons with events
|
||||
Array.from(document.querySelectorAll(".install-tab[data-id]")).forEach((tab) => {
|
||||
tab.addEventListener("click", onTabClick);
|
||||
});
|
||||
|
||||
function onArchChange(evt) {
|
||||
// Get target
|
||||
const target = evt.currentTarget.value;
|
||||
// Find corresponding installer lists
|
||||
const newContentEl = document.querySelector(`.arch[data-arch=${target}]`);
|
||||
const oldContentEl = document.querySelector(`.arch[data-arch]:not(.hidden)`);
|
||||
// Hide old content element (if applicable)
|
||||
if (oldContentEl) {
|
||||
oldContentEl.classList.add("hidden");
|
||||
}
|
||||
// Show new content element
|
||||
newContentEl.classList.remove("hidden");
|
||||
// Show the first tab's content if nothing was selected before
|
||||
if (newContentEl.querySelectorAll(".install-tab.selected").length === 0) {
|
||||
const firstContentChild = newContentEl.querySelector(".install-content:first-of-type");
|
||||
const firstTabChild = newContentEl.querySelector(".install-tab:first-of-type");
|
||||
firstContentChild.classList.remove("hidden");
|
||||
if (firstTabChild) {
|
||||
firstTabChild.classList.add("selected");
|
||||
}
|
||||
}
|
||||
// Hide "no OS detected" message
|
||||
const noDetectEl = document.querySelector(".no-autodetect");
|
||||
noDetectEl.classList.add("hidden");
|
||||
// Hide Mac hint
|
||||
document.querySelector(".mac-switch").classList.add("hidden");
|
||||
}
|
||||
|
||||
function onTabClick(evt) {
|
||||
// Get target and ID
|
||||
const {triple, id} = evt.currentTarget.dataset;
|
||||
if (triple) {
|
||||
// Find corresponding content elements
|
||||
const newContentEl = document.querySelector(`.install-content[data-id="${String(id)}"][data-triple=${triple}]`);
|
||||
const oldContentEl = document.querySelector(`.install-content[data-triple=${triple}][data-id]:not(.hidden)`);
|
||||
// Find old tab to unselect
|
||||
const oldTabEl = document.querySelector(`.install-tab[data-triple=${triple}].selected`);
|
||||
// Hide old content element
|
||||
if (oldContentEl && oldTabEl) {
|
||||
oldContentEl.classList.add("hidden");
|
||||
oldTabEl.classList.remove("selected");
|
||||
}
|
||||
|
||||
// Unhide new content element
|
||||
newContentEl.classList.remove("hidden");
|
||||
// Select new tab element
|
||||
evt.currentTarget.classList.add("selected");
|
||||
}
|
||||
}
|
||||
|
||||
const allPlatforms = Array.from(document.querySelectorAll(`.arch[data-arch]`));
|
||||
let hit = allPlatforms.find(
|
||||
(a) => {
|
||||
// Show Intel Mac downloads if no M1 Mac downloads are available
|
||||
if (
|
||||
a.attributes["data-arch"].value.includes(options.mac64) &&
|
||||
os.includes(options.macSilicon) &&
|
||||
!allPlatforms.find(p => p.attributes["data-arch"].value.includes(options.macSilicon))) {
|
||||
// Unhide hint
|
||||
document.querySelector(".mac-switch").classList.remove("hidden");
|
||||
return true;
|
||||
}
|
||||
return a.attributes["data-arch"].value.includes(os);
|
||||
}
|
||||
);
|
||||
|
||||
if (hit) {
|
||||
hit.classList.remove("hidden");
|
||||
const selectEl = document.querySelector("#install-arch-select");
|
||||
selectEl.value = hit.dataset.arch;
|
||||
const firstContentChild = hit.querySelector(".install-content:first-of-type");
|
||||
const firstTabChild = hit.querySelector(".install-tab:first-of-type");
|
||||
firstContentChild.classList.remove("hidden");
|
||||
if (firstTabChild) {
|
||||
firstTabChild.classList.add("selected");
|
||||
}
|
||||
} else {
|
||||
const noDetectEl = document.querySelector(".no-autodetect");
|
||||
if (noDetectEl) {
|
||||
const noDetectElDetails = document.querySelector(".no-autodetect-details");
|
||||
if (noDetectElDetails) {
|
||||
noDetectElDetails.innerHTML = `We detected you're on ${os} but there don't seem to be installers for that. `
|
||||
}
|
||||
noDetectEl.classList.remove("hidden");
|
||||
}
|
||||
}
|
||||
|
||||
let copyButtons = Array.from(document.querySelectorAll("[data-copy]"));
|
||||
if (copyButtons.length) {
|
||||
copyButtons.forEach(function (element) {
|
||||
element.addEventListener("click", () => {
|
||||
navigator.clipboard.writeText(element.attributes["data-copy"].value);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// Toggle for pre releases
|
||||
const checkbox = document.getElementById("show-prereleases");
|
||||
|
||||
if (checkbox) {
|
||||
checkbox.addEventListener("click", () => {
|
||||
const all = document.getElementsByClassName("pre-release");
|
||||
|
||||
if (all) {
|
||||
for (var item of all) {
|
||||
item.classList.toggle("hidden");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
|
@ -0,0 +1,100 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" id="oranda" class="dark">
|
||||
<head>
|
||||
<title>adx</title>
|
||||
|
||||
|
||||
<link rel="icon" href="/adx/favicon.ico" />
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="adx" />
|
||||
|
||||
|
||||
|
||||
<meta http-equiv="Permissions-Policy" content="interest-cohort=()" />
|
||||
<link rel="stylesheet" href="/adx/oranda-v0.6.1.css" />
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="page-body">
|
||||
|
||||
|
||||
<main>
|
||||
<header>
|
||||
|
||||
<h1 class="title">adx</h1>
|
||||
|
||||
<nav class="nav">
|
||||
<ul>
|
||||
<li><a href="/adx/">Home</a></li>
|
||||
|
||||
|
||||
|
||||
|
||||
<li><a href="/adx/artifacts/">Install</a></li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
|
||||
|
||||
|
||||
<h1>androidx-release-watcher <a href="http://unmaintained.tech/" rel="noopener noreferrer"><img src="http://unmaintained.tech/badge.svg" alt="No Maintenance Intended"></a> <a href="https://garnix.io" rel="noopener noreferrer"><img src="https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fgarnix.io%2Fapi%2Fbadges%2Fmsfjarvis%2Fadx%3Fbranch%3Dmain" alt="Built with Garnix"></a></h1>
|
||||
<p>Rust binary that polls Google's Maven repository and finds the latest version of the requested dependencies.</p>
|
||||
<h2>Installation</h2>
|
||||
<h3>Using <code>cargo</code></h3>
|
||||
<p>Run <code>cargo install --locked adx</code> on a terminal.</p>
|
||||
<h3>From source</h3>
|
||||
<pre style="background-color:#263238;"><span style="color:#82aaff;">git clone https://github.com/msfjarvis/adx
|
||||
</span><span style="color:#82aaff;">cd adx
|
||||
</span><span style="color:#82aaff;">cargo install</span><span style="color:#89ddff;"> --</span><span style="color:#f78c6c;">path</span><span style="color:#82aaff;"> adx
|
||||
</span></pre>
|
||||
|
||||
<h2>Usage</h2>
|
||||
<h3>Find the latest release of a package</h3>
|
||||
<pre style="background-color:#263238;"><span style="color:#82aaff;">$ adx appcompat
|
||||
</span><span style="color:#82aaff;">androidx.appcompat:appcompat:1.3.0-alpha02
|
||||
</span><span style="color:#82aaff;">androidx.appcompat:appcompat-resources:1.3.0-alpha02
|
||||
</span></pre>
|
||||
|
||||
<h3>Find the latest stable version of a package</h3>
|
||||
<pre style="background-color:#263238;"><span style="color:#82aaff;">$ adx</span><span style="color:#89ddff;"> --</span><span style="color:#f78c6c;">channel</span><span style="color:#82aaff;"> stable appcompat
|
||||
</span><span style="color:#82aaff;">androidx.appcompat:appcompat:1.2.0
|
||||
</span><span style="color:#82aaff;">androidx.appcompat:appcompat-resources:1.2.0
|
||||
</span></pre>
|
||||
|
||||
|
||||
|
||||
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
|
||||
<span>
|
||||
adx
|
||||
</span>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue