All files init-apt.ts

0% Statements 0/5
0% Branches 0/1
0% Functions 0/1
0% Lines 0/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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                                                         
import { defaultExecOptions, execRootSync } from "admina"
import memoize from "memoizee"
import { getAptEnv } from "./apt-env.js"
import { aptTimeout } from "./apt-timeout.js"
import { filterAndQualifyAptPackages } from "./qualify-install.js"
import { updateAptReposMemoized } from "./update.js"
 
/** Install gnupg and certificates (usually missing from docker containers) */
export async function initApt(apt: string) {
  // Update the repos
  updateAptReposMemoized(apt)
 
  const toInstall = await filterAndQualifyAptPackages([
    { name: "ca-certificates" },
    { name: "gnupg" },
    { name: "apt-utils" },
  ], apt)
 
  Iif (toInstall.length !== 0) {
    execRootSync(apt, ["install", "-y", "--fix-broken", "-o", aptTimeout, ...toInstall], {
      ...defaultExecOptions,
      env: getAptEnv(apt),
    })
  }
}
 
/** Install gnupg and certificates (usually missing from docker containers) (memoized) */
export const initAptMemoized = memoize(initApt, { promise: true })