mirror of
https://github.com/0xrsydn/idx-cli.git
synced 2026-08-07 01:33:52 +00:00
fix: narrow cache miss recovery behavior
This commit is contained in:
parent
018b8aeb55
commit
3533670d92
2 changed files with 12 additions and 8 deletions
13
src/cache.rs
13
src/cache.rs
|
|
@ -166,13 +166,11 @@ impl Cache {
|
||||||
let raw = match fs::read_to_string(&path) {
|
let raw = match fs::read_to_string(&path) {
|
||||||
Ok(s) => s,
|
Ok(s) => s,
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
eprintln!(
|
if e.kind() == std::io::ErrorKind::NotFound {
|
||||||
"warning: corrupted cache entry for {}/{}, treating as miss: {}",
|
|
||||||
data_type, symbol, e
|
|
||||||
);
|
|
||||||
let _ = fs::remove_file(&path);
|
|
||||||
return Ok(None);
|
return Ok(None);
|
||||||
}
|
}
|
||||||
|
return Err(IdxError::Io(e.to_string()));
|
||||||
|
}
|
||||||
};
|
};
|
||||||
let entry: CacheEntry<T> = match serde_json::from_str(&raw) {
|
let entry: CacheEntry<T> = match serde_json::from_str(&raw) {
|
||||||
Ok(e) => e,
|
Ok(e) => e,
|
||||||
|
|
@ -207,7 +205,10 @@ pub fn cache_dir() -> Result<PathBuf, IdxError> {
|
||||||
if let Ok(dir) = std::env::var("XDG_CACHE_HOME")
|
if let Ok(dir) = std::env::var("XDG_CACHE_HOME")
|
||||||
&& !dir.is_empty()
|
&& !dir.is_empty()
|
||||||
{
|
{
|
||||||
return Ok(PathBuf::from(dir).join("idx"));
|
let path = PathBuf::from(dir);
|
||||||
|
if path.is_absolute() {
|
||||||
|
return Ok(path.join("idx"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ProjectDirs::from("", "", "idx")
|
ProjectDirs::from("", "", "idx")
|
||||||
.map(|d| d.cache_dir().to_path_buf())
|
.map(|d| d.cache_dir().to_path_buf())
|
||||||
|
|
|
||||||
|
|
@ -200,7 +200,10 @@ pub fn config_path() -> Result<PathBuf, IdxError> {
|
||||||
if let Ok(dir) = std::env::var("XDG_CONFIG_HOME")
|
if let Ok(dir) = std::env::var("XDG_CONFIG_HOME")
|
||||||
&& !dir.is_empty()
|
&& !dir.is_empty()
|
||||||
{
|
{
|
||||||
return Ok(PathBuf::from(dir).join("idx").join("config.toml"));
|
let path = PathBuf::from(dir);
|
||||||
|
if path.is_absolute() {
|
||||||
|
return Ok(path.join("idx").join("config.toml"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ProjectDirs::from("", "", "idx")
|
ProjectDirs::from("", "", "idx")
|
||||||
.map(|d| d.config_dir().join("config.toml"))
|
.map(|d| d.config_dir().join("config.toml"))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue