zerobyte/app/server/utils/restic/helpers/add-common-args.ts
2026-02-26 18:48:17 +00:00

42 lines
1 KiB
TypeScript

import type { RepositoryConfig } from "~/schemas/restic";
import { formatBandwidthLimit } from "./bandwidth";
import type { ResticEnv } from "../types";
export const addCommonArgs = (
args: string[],
env: ResticEnv,
config?: RepositoryConfig,
options?: { skipBandwidth?: boolean; includeJson?: boolean },
) => {
if (options?.includeJson !== false) {
args.push("--json");
}
if (env._SFTP_SSH_ARGS) {
args.push("-o", `sftp.args=${env._SFTP_SSH_ARGS}`);
}
if (env.AWS_S3_BUCKET_LOOKUP === "dns") {
args.push("-o", "s3.bucket-lookup=dns");
}
if (env._INSECURE_TLS === "true") {
args.push("--insecure-tls");
}
if (env.RESTIC_CACERT) {
args.push("--cacert", env.RESTIC_CACERT);
}
if (config && !options?.skipBandwidth) {
const uploadLimit = formatBandwidthLimit(config.uploadLimit);
if (uploadLimit) {
args.push("--limit-upload", uploadLimit);
}
const downloadLimit = formatBandwidthLimit(config.downloadLimit);
if (downloadLimit) {
args.push("--limit-download", downloadLimit);
}
}
};