-
Notifications
You must be signed in to change notification settings - Fork 687
/
index.js
112 lines (96 loc) · 3.5 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import React from 'react';
import { getLatestRelease, getLatestVersion } from '@site/src/components/RabbitMQServerReleaseInfo';
import { useActiveVersion } from '@docusaurus/plugin-content-docs/client';
function getBranchOrDefault({ branch } = { branch: undefined }) {
if (branch === undefined) {
branch = useActiveVersion().label;
}
return branch;
}
function getLatestVersionForCurrentBranch(props) {
const branch = getBranchOrDefault(props);
const version = getLatestVersion(branch);
return version;
}
function getPackageRevision(props) {
const branch = getBranchOrDefault(props);
const release = getLatestRelease(branch);
const { packageType } = props;
var package_rev;
if ('package_revs' in release && packageType in release['package_revs']) {
package_rev = release['package_revs'][packageType];
} else {
package_rev = '1';
}
return package_rev;
}
export function RabbitMQServerProductName() {
return 'RabbitMQ';
}
export function RabbitMQServerReleaseBranch(props = {}) {
const branch = getBranchOrDefault(props);
return branch;
}
export function RabbitMQServerVersion(props = {}) {
const version = getLatestVersionForCurrentBranch(props);
return version;
}
export function RabbitMQServerGitTag(props = {}) {
const version = getLatestVersionForCurrentBranch(props);
const tag = `v${version}`;
return tag;
}
export function RabbitMQServerPackageURL(props) {
const { packageType } = props;
const version = getLatestVersionForCurrentBranch(props);
const tag = RabbitMQServerGitTag();
const baseUrl = `https://github.com/rabbitmq/rabbitmq-server/releases/download/${tag}`;
switch (packageType) {
case 'debian':
const debian_rev = getPackageRevision(packageType);
return `${baseUrl}/rabbitmq-server_${version.replaceAll('-', '.')}-${debian_rev}_all.deb`;
case 'rpm-el8':
const rpm_el8_rev = getPackageRevision(packageType);
return `${baseUrl}/rabbitmq-server-${version.replaceAll('-', '.')}-${rpm_el8_rev}.el8.noarch.rpm`;
case 'rpm-suse':
const rpm_suse_rev = getPackageRevision(packageType);
return `${baseUrl}/rabbitmq-server-${version.replaceAll('-', '.')}-${rpm_suse_rev}.suse.noarch.rpm`;
case 'generic-unix':
return `${baseUrl}/rabbitmq-server-generic-unix-${version}.tar.xz`;
case 'windows-installer':
return `${baseUrl}/rabbitmq-server-${version}.exe`;
case 'windows-zip':
return `${baseUrl}/rabbitmq-server-windows-${version}.zip`;
default:
throw new Error(`Unknown RabbitMQ server package type ${package_type}`);
}
}
export function RabbitMQServerPackageRevision(props) {
const { packageType } = props;
switch (packageType) {
case 'debian':
const debian_rev = getPackageRevision(packageType);
return debian_rev;
case 'rpm-el8':
const rpm_el8_rev = getPackageRevision(packageType);
return rpm_el8_rev;
case 'rpm-suse':
const rpm_suse_rev = getPackageRevision(packageType);
return rpm_suse_rev;
default:
throw new Error(`No package revision for package type ${package_type}`);
}
}
export function RabbitMQServerPackageFilename(props) {
const url = RabbitMQServerPackageURL(props);
const basename = url.split('/').reverse()[0];
return basename;
}
export function RabbitMQServerPackageGenUnixDir(props = {}) {
const version = getLatestVersionForCurrentBranch(props);
const dir = `rabbitmq_${version}`;
return dir;
}
export function RabbitMQServerPackageWinZipDir(props = {}) {
return RabbitMQServerPackageGenUnixDir(props);
}