1
0
mirror of https://github.com/sharkdp/bat.git synced 2025-09-01 19:02:22 +01:00

Support a hidden arg --no-custom-assets that skips loading assets from the cache

This commit is contained in:
Martin Nordholts
2021-07-27 20:11:58 +02:00
parent a81009607a
commit b040efff79
7 changed files with 33 additions and 6 deletions

View File

@@ -234,6 +234,7 @@ impl App {
.map(LineRanges::from)
.map(HighlightedLineRanges)
.unwrap_or_default(),
use_custom_assets: !self.matches.is_present("no-custom-assets"),
})
}

View File

@@ -23,7 +23,7 @@ pub fn clear_assets() {
clear_asset("metadata.yaml", "metadata file");
}
pub fn assets_from_cache_or_binary() -> Result<HighlightingAssets> {
pub fn assets_from_cache_or_binary(use_custom_assets: bool) -> Result<HighlightingAssets> {
let cache_dir = PROJECT_DIRS.cache_dir();
if let Some(metadata) = AssetsMetadata::load_from_folder(&cache_dir)? {
if !metadata.is_compatible_with(crate_version!()) {
@@ -41,8 +41,12 @@ pub fn assets_from_cache_or_binary() -> Result<HighlightingAssets> {
}
}
Ok(HighlightingAssets::from_cache(&cache_dir)
.unwrap_or_else(|_| HighlightingAssets::from_binary()))
let custom_assets = if use_custom_assets {
HighlightingAssets::from_cache(&cache_dir).ok()
} else {
None
};
Ok(custom_assets.unwrap_or_else(HighlightingAssets::from_binary))
}
fn clear_asset(filename: &str, description: &str) {

View File

@@ -450,6 +450,12 @@ pub fn build_app(interactive_output: bool) -> ClapApp<'static, 'static> {
.hidden(true)
.help("Do not use the configuration file"),
)
.arg(
Arg::with_name("no-custom-assets")
.long("no-custom-assets")
.hidden(true)
.help("Do not load custom assets"),
)
.arg(
Arg::with_name("config-file")
.long("config-file")

View File

@@ -80,7 +80,7 @@ fn get_syntax_mapping_to_paths<'a>(
pub fn get_languages(config: &Config) -> Result<String> {
let mut result: String = String::new();
let assets = assets_from_cache_or_binary()?;
let assets = assets_from_cache_or_binary(config.use_custom_assets)?;
let mut languages = assets
.get_syntaxes()?
.iter()
@@ -178,7 +178,7 @@ fn theme_preview_file<'a>() -> Input<'a> {
}
pub fn list_themes(cfg: &Config) -> Result<()> {
let assets = assets_from_cache_or_binary()?;
let assets = assets_from_cache_or_binary(cfg.use_custom_assets)?;
let mut config = cfg.clone();
let mut style = HashSet::new();
style.insert(StyleComponent::Plain);
@@ -219,7 +219,7 @@ pub fn list_themes(cfg: &Config) -> Result<()> {
}
fn run_controller(inputs: Vec<Input>, config: &Config) -> Result<bool> {
let assets = assets_from_cache_or_binary()?;
let assets = assets_from_cache_or_binary(config.use_custom_assets)?;
let controller = Controller::new(&config, &assets);
controller.run(inputs)
}

View File

@@ -82,6 +82,10 @@ pub struct Config<'a> {
/// Ranges of lines which should be highlighted with a special background color
pub highlighted_lines: HighlightedLineRanges,
/// Whether or not to allow custom assets. If this is false or if custom assets (a.k.a.
/// cached assets) are not available, assets from the binary will be used instead.
pub use_custom_assets: bool,
}
#[cfg(all(feature = "application", feature = "paging"))]