ramm 0.0.53 → 0.0.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ramm.js +40 -7
- package/dist/types/packages.d.ts +12 -1
- package/package.json +1 -1
package/dist/ramm.js
CHANGED
|
@@ -134,17 +134,50 @@ var {$: $2 } = globalThis.Bun;
|
|
|
134
134
|
|
|
135
135
|
// src/packages.ts
|
|
136
136
|
var {$ } = globalThis.Bun;
|
|
137
|
-
var
|
|
138
|
-
var
|
|
139
|
-
|
|
140
|
-
|
|
137
|
+
var dnfOs = ["rocky", "fedora", "alma"];
|
|
138
|
+
var aptOs = ["ubuntu"];
|
|
139
|
+
var getManagerByOs = (osName) => {
|
|
140
|
+
if (aptOs.includes(osName)) {
|
|
141
|
+
return "apt";
|
|
142
|
+
} else if (dnfOs.includes(osName)) {
|
|
143
|
+
return "dnf";
|
|
144
|
+
} else {
|
|
145
|
+
throw new Error(`Unsupported OS: ${osName}`);
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
var getManagerConfig = (manager, packageConfig) => {
|
|
149
|
+
if (packageConfig.managers && manager in packageConfig.managers) {
|
|
150
|
+
const managerEnt = packageConfig.managers[manager];
|
|
151
|
+
return managerEnt;
|
|
152
|
+
}
|
|
153
|
+
return {
|
|
154
|
+
name: packageConfig.name,
|
|
155
|
+
command: packageConfig.command
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
var packages = {
|
|
159
|
+
nftables: {
|
|
160
|
+
name: "nftables",
|
|
161
|
+
command: "nft"
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
var installSystemPackage = async (packageEnt, context) => {
|
|
165
|
+
const finalPackageEnt = typeof packageEnt === "string" ? packages[packageEnt] : packageEnt;
|
|
166
|
+
if (!finalPackageEnt) {
|
|
167
|
+
const errorMessage = `No package ent for: ${packageEnt}`;
|
|
168
|
+
throw new Error(errorMessage);
|
|
169
|
+
}
|
|
170
|
+
const osName = (await $`cat /etc/os-release | grep ^ID= | cut -d'=' -f2`.text()).trim().replace(/'/g, "");
|
|
171
|
+
const manager = getManagerByOs(osName);
|
|
172
|
+
const managerConfig = getManagerConfig(manager, finalPackageEnt);
|
|
173
|
+
const checkResult = await execCommandMayError(`command -v ${managerConfig.command}`, {}, context);
|
|
141
174
|
if (checkResult.spawnResult.exitCode === 0) {
|
|
142
175
|
return;
|
|
143
176
|
}
|
|
144
177
|
if (osName === "ubuntu") {
|
|
145
|
-
await execCommand(`apt-get install -y ${
|
|
146
|
-
} else if (
|
|
147
|
-
await execCommand(`dnf install -y ${
|
|
178
|
+
await execCommand(`apt-get install -y ${managerConfig.name}`, {}, context);
|
|
179
|
+
} else if (dnfOs.includes(osName)) {
|
|
180
|
+
await execCommand(`dnf install -y ${managerConfig.name}`, {}, context);
|
|
148
181
|
} else {
|
|
149
182
|
throw new Error(`Unsupported OS: ${osName}`);
|
|
150
183
|
}
|
package/dist/types/packages.d.ts
CHANGED
|
@@ -1,2 +1,13 @@
|
|
|
1
1
|
import type { Context } from "./context.ts";
|
|
2
|
-
|
|
2
|
+
type Manager = "dnf" | "apt";
|
|
3
|
+
type PackageConfig = {
|
|
4
|
+
name: string;
|
|
5
|
+
command: string;
|
|
6
|
+
managers?: Record<Manager, ManagerConfig>;
|
|
7
|
+
};
|
|
8
|
+
type ManagerConfig = {
|
|
9
|
+
name: string;
|
|
10
|
+
command: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const installSystemPackage: (packageEnt: string | PackageConfig, context?: Context) => Promise<void>;
|
|
13
|
+
export {};
|
package/package.json
CHANGED