Merge pull request #254618 from figsoda/oranda

oranda: 0.3.1 -> 0.4.0
This commit is contained in:
figsoda
2023-09-16 10:14:45 -04:00
committed by GitHub
2 changed files with 6 additions and 64 deletions
+6 -12
View File
@@ -2,34 +2,28 @@
, rustPlatform
, fetchFromGitHub
, pkg-config
, tailwindcss
, oniguruma
, stdenv
, darwin
, tailwindcss
}:
rustPlatform.buildRustPackage rec {
pname = "oranda";
version = "0.3.1";
version = "0.4.0";
src = fetchFromGitHub {
owner = "axodotdev";
repo = "oranda";
rev = "v${version}";
hash = "sha256-v/4FPDww142V5mx+pHhaHkDiIUN70dwei8mTeZELztc=";
hash = "sha256-PHaqWKsZyNZnEAzEWMzJK6MD0b4O6pkYQG403ONIj0w=";
};
cargoHash = "sha256-Q5EY9PB50DxFXFTPiv3RktI37b2TCDqLVNISxixnspY=";
patches = [
# oranda-generate-css which is used in the build script tries to download
# tailwindcss from the internet, so we have to patch it to use the
# tailwindcss from nixpkgs
./tailwind.patch
];
cargoHash = "sha256-zV7vG1mcgVusWCa4jKNLD+SqzReLZQRotk6nvzPYCU4=";
nativeBuildInputs = [
pkg-config
tailwindcss
];
buildInputs = [
@@ -46,7 +40,7 @@ rustPlatform.buildRustPackage rec {
env = {
RUSTONIG_SYSTEM_LIBONIG = true;
TAILWINDCSS = lib.getExe tailwindcss;
ORANDA_USE_TAILWIND_BINARY = true;
} // lib.optionalAttrs stdenv.isDarwin {
# without this, tailwindcss fails with OpenSSL configuration error
OPENSSL_CONF = "";
@@ -1,52 +0,0 @@
--- a/generate-css/src/lib.rs
+++ b/generate-css/src/lib.rs
@@ -28,48 +28,7 @@ pub fn default_css_output_dir() -> Utf8PathBuf {
}
pub fn build_css(dist_dir: &Utf8Path) -> Result<()> {
- // Fetch our cache dir
- let project_dir = ProjectDirs::from("dev", "axo", "oranda")
- .expect("Unable to create cache dir for downloading Tailwind!");
- let cache_dir = project_dir.cache_dir();
- // Figure out our target "double" (tailwind has weird naming around this)
- let double = match (env::consts::OS, env::consts::ARCH) {
- ("linux", "x86_64") => "linux-x64",
- ("linux", "aarch64") => "linux-arm64",
- ("linux", "arm") => "linux-armv7",
- ("macos", "x86_64") => "macos-x64",
- ("macos", "aarch64") => "macos-arm64",
- ("windows", "x86_64") => "windows-x64.exe",
- ("windows", "aarch64") => "windows-arm64.exe",
- _ => "linux-x64",
- };
- let mut binary_path = Utf8PathBuf::from(cache_dir.display().to_string());
- LocalAsset::create_dir_all(&binary_path)?;
- binary_path.push(format!("tailwindcss-{double}"));
- if !binary_path.exists() {
- // Fetch the binary from GitHub if it doesn't exist
- tracing::info!("Fetching Tailwind binary from GitHub release...");
- let url = format!(
- "https://github.com/tailwindlabs/tailwindcss/releases/latest/download/tailwindcss-{double}"
- );
- let handle = tokio::runtime::Handle::current();
- let response = handle.block_on(reqwest::get(url))?;
- let bytes = handle.block_on(response.bytes())?;
- let file = LocalAsset::new(&binary_path, Vec::from(bytes))?;
- file.write(
- binary_path
- .parent()
- .expect("Tailwind binary path has no parent!?"),
- )?;
-
- // On non-Windows platforms, we need to mark the file as executable
- #[cfg(target_family = "unix")]
- {
- use std::os::unix::prelude::PermissionsExt;
- let user_execute = std::fs::Permissions::from_mode(0o755);
- std::fs::set_permissions(&binary_path, user_execute)?;
- }
- }
+ let binary_path = env!("TAILWINDCSS");
tracing::info!("Building oranda CSS using Tailwind...");
let css_src_path = manifest_dir().join(CSS_SRC_PATH);