mirror of
https://github.com/sharkdp/bat.git
synced 2024-11-22 15:53:29 +01:00
Fix compilation of library
This commit is contained in:
parent
886b22e0ee
commit
2e9cf63a5f
@ -48,7 +48,7 @@ encoding = "0.2"
|
||||
shell-words = { version = "0.1.0", optional = true }
|
||||
unicode-width = "0.1.7"
|
||||
globset = "0.4"
|
||||
serde = "1.0"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_yaml = "0.8"
|
||||
semver = "0.9"
|
||||
|
||||
|
@ -117,7 +117,7 @@ impl HighlightingAssets {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn save_to_cache(&self, target_dir: &Path) -> Result<()> {
|
||||
pub fn save_to_cache(&self, target_dir: &Path, current_version: &str) -> Result<()> {
|
||||
let _ = fs::create_dir_all(target_dir);
|
||||
let theme_set_path = target_dir.join("themes.bin");
|
||||
let syntax_set_path = target_dir.join("syntaxes.bin");
|
||||
@ -150,7 +150,7 @@ impl HighlightingAssets {
|
||||
"Writing metadata to folder {} ... ",
|
||||
target_dir.to_string_lossy()
|
||||
);
|
||||
AssetsMetadata::new().save_to_folder(target_dir)?;
|
||||
AssetsMetadata::new(current_version).save_to_folder(target_dir)?;
|
||||
println!("okay");
|
||||
|
||||
Ok(())
|
||||
|
@ -2,7 +2,6 @@ use std::fs::File;
|
||||
use std::path::Path;
|
||||
use std::time::SystemTime;
|
||||
|
||||
use clap::crate_version;
|
||||
use semver::Version;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
@ -17,9 +16,9 @@ pub struct AssetsMetadata {
|
||||
const FILENAME: &'static str = "metadata.yaml";
|
||||
|
||||
impl AssetsMetadata {
|
||||
pub(crate) fn new() -> AssetsMetadata {
|
||||
pub(crate) fn new(current_version: &str) -> AssetsMetadata {
|
||||
AssetsMetadata {
|
||||
bat_version: Some(crate_version!().into()),
|
||||
bat_version: Some(current_version.to_owned()),
|
||||
creation_time: Some(SystemTime::now()),
|
||||
}
|
||||
}
|
||||
@ -64,9 +63,9 @@ impl AssetsMetadata {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn is_compatible(&self) -> bool {
|
||||
pub fn is_compatible_with(&self, current_version: &str) -> bool {
|
||||
let current_version =
|
||||
Version::parse(crate_version!()).expect("bat follows semantic versioning");
|
||||
Version::parse(current_version).expect("bat follows semantic versioning");
|
||||
let stored_version = self
|
||||
.bat_version
|
||||
.as_ref()
|
||||
|
@ -37,7 +37,7 @@ pub fn clear_assets() {
|
||||
pub fn assets_from_cache_or_binary() -> Result<HighlightingAssets> {
|
||||
let cache_dir = PROJECT_DIRS.cache_dir();
|
||||
if let Some(metadata) = AssetsMetadata::load_from_folder(&cache_dir)? {
|
||||
if !metadata.is_compatible() {
|
||||
if !metadata.is_compatible_with(crate_version!()) {
|
||||
return Err(format!(
|
||||
"The binary caches for the user-customized syntaxes and themes \
|
||||
in '{}' are not compatible with this version of bat ({}). To solve this, \
|
||||
|
@ -22,13 +22,13 @@ use crate::{
|
||||
config::{config_file, generate_config_file},
|
||||
};
|
||||
use assets::{assets_from_cache_or_binary, cache_dir, clear_assets, config_dir};
|
||||
use bat::Controller;
|
||||
use clap::crate_version;
|
||||
use directories::PROJECT_DIRS;
|
||||
|
||||
use bat::{
|
||||
config::{Config, InputFile, OrdinaryFile, StyleComponent, StyleComponents},
|
||||
errors::*,
|
||||
HighlightingAssets,
|
||||
Controller, HighlightingAssets,
|
||||
};
|
||||
|
||||
fn run_cache_subcommand(matches: &clap::ArgMatches) -> Result<()> {
|
||||
@ -45,7 +45,7 @@ fn run_cache_subcommand(matches: &clap::ArgMatches) -> Result<()> {
|
||||
let blank = matches.is_present("blank");
|
||||
|
||||
let assets = HighlightingAssets::from_files(source_dir, !blank)?;
|
||||
assets.save_to_cache(target_dir)?;
|
||||
assets.save_to_cache(target_dir, crate_version!())?;
|
||||
} else if matches.is_present("clear") {
|
||||
clear_assets();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user