Path: blob/main/package/src/common/dependencies/dartsass.ts
6451 views
/*1* dartsass.ts2*3* Copyright (C) 2020-2022 Posit Software, PBC4*5*/6import { ensureDirSync, existsSync } from "../../../../src/deno_ral/fs.ts";7import { dirname, join } from "../../../../src/deno_ral/path.ts";89import { unTar } from "../../util/tar.ts";10import { Configuration } from "../config.ts";11import { Dependency } from "./dependencies.ts";1213export function dartSass(version: string): Dependency {14const dartRelease = (15filename: string,16) => {17return {18filename,19url:20`https://github.com/sass/dart-sass/releases/download/${version}/${filename}`,21configure: async (config: Configuration, path: string) => {22const vendor = Deno.env.get("QUARTO_VENDOR_BINARIES");23if (vendor === undefined || vendor === "true") {24// Remove existing dart-sass dir25const dir = dirname(path);26const targetDir = join(dir, config.arch);27ensureDirSync(targetDir);2829const dartSubdir = join(targetDir, `dart-sass`);30if (existsSync(dartSubdir)) {31Deno.removeSync(dartSubdir, { recursive: true });32}3334// Expand35await unTar(path, targetDir);36}37},38};39};4041return {42name: "Dart Sass Compiler",43bucket: "dart-sass",44version,45architectureDependencies: {46"x86_64": {47"windows": dartRelease(`dart-sass-${version}-windows-x64.zip`),48"linux": dartRelease(`dart-sass-${version}-linux-x64.tar.gz`),49"darwin": dartRelease(`dart-sass-${version}-macos-x64.tar.gz`),50},51"aarch64": {52"linux": dartRelease(`dart-sass-${version}-linux-arm64.tar.gz`),53"darwin": dartRelease(`dart-sass-${version}-macos-arm64.tar.gz`),54},55},56};57}585960