mirror of
https://github.com/Llewellynvdm/zoxide.git
synced 2024-11-13 08:46:32 +00:00
Implement _ZO_EXCLUDE_DIRS
_ZO_EXCLUDE_DIRS is a list of paths (separated by colons, `:`, on Unix-based systems, and semicolons, `;`, on Windows) that should be excluded from the database. Example: _ZO_EXCLUDE_DIRS="$HOME:$HOME/something/super/secret:$HOME/caused/by/background/cds"
This commit is contained in:
parent
f29b642ffc
commit
1190106849
@ -1,6 +1,7 @@
|
|||||||
use crate::types::Rank;
|
use crate::types::Rank;
|
||||||
|
|
||||||
use anyhow::{bail, Context, Result};
|
use anyhow::{bail, Context, Result};
|
||||||
|
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::fs;
|
use std::fs;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
@ -25,6 +26,13 @@ pub fn zo_data() -> Result<PathBuf> {
|
|||||||
Ok(path)
|
Ok(path)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn zo_exclude_dirs() -> Vec<PathBuf> {
|
||||||
|
match env::var_os("_ZO_EXCLUDE_DIRS") {
|
||||||
|
Some(dirs_osstr) => env::split_paths(&dirs_osstr).collect(),
|
||||||
|
None => Vec::new(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn zo_maxage() -> Result<Rank> {
|
pub fn zo_maxage() -> Result<Rank> {
|
||||||
match env::var_os("_ZO_MAXAGE") {
|
match env::var_os("_ZO_MAXAGE") {
|
||||||
Some(maxage_osstr) => match maxage_osstr.to_str() {
|
Some(maxage_osstr) => match maxage_osstr.to_str() {
|
||||||
|
@ -2,13 +2,15 @@ use crate::config;
|
|||||||
use crate::util;
|
use crate::util;
|
||||||
|
|
||||||
use anyhow::{Context, Result};
|
use anyhow::{Context, Result};
|
||||||
use std::env;
|
|
||||||
use structopt::StructOpt;
|
use structopt::StructOpt;
|
||||||
|
|
||||||
|
use std::env;
|
||||||
|
use std::path::PathBuf;
|
||||||
|
|
||||||
#[derive(Debug, StructOpt)]
|
#[derive(Debug, StructOpt)]
|
||||||
#[structopt(about = "Add a new directory or increment its rank")]
|
#[structopt(about = "Add a new directory or increment its rank")]
|
||||||
pub struct Add {
|
pub struct Add {
|
||||||
path: Option<String>,
|
path: Option<PathBuf>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Add {
|
impl Add {
|
||||||
@ -16,14 +18,17 @@ impl Add {
|
|||||||
let mut db = util::get_db()?;
|
let mut db = util::get_db()?;
|
||||||
let now = util::get_current_time()?;
|
let now = util::get_current_time()?;
|
||||||
let maxage = config::zo_maxage()?;
|
let maxage = config::zo_maxage()?;
|
||||||
|
let excluded_dirs = config::zo_exclude_dirs();
|
||||||
|
|
||||||
match &self.path {
|
let path = match &self.path {
|
||||||
Some(path) => db.add(path, maxage, now),
|
Some(path) => path.clone(),
|
||||||
None => {
|
None => env::current_dir().context("unable to fetch current directory")?,
|
||||||
let current_dir =
|
};
|
||||||
env::current_dir().context("unable to fetch current directory")?;
|
|
||||||
db.add(current_dir, maxage, now)
|
if excluded_dirs.contains(&path) {
|
||||||
}
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
db.add(path, maxage, now)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user