Skip to content

Commit 1a24ee6

Browse files
Merge pull request #260 from github/cli-canonical-paths
Use canonical paths for CLI commands
2 parents b7b8f38 + fa95a85 commit 1a24ee6

File tree

3 files changed

+12
-5
lines changed

3 files changed

+12
-5
lines changed

tree-sitter-stack-graphs/src/cli/index.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,13 @@ impl IndexArgs {
103103
let mut indexer = Indexer::new(&mut db, &mut loader, &logger);
104104
indexer.force = self.force;
105105
indexer.max_file_time = self.max_file_time;
106-
indexer.index_all(self.source_paths, self.continue_from, &NoCancellation)?;
106+
107+
let source_paths = self
108+
.source_paths
109+
.into_iter()
110+
.map(|p| p.canonicalize())
111+
.collect::<std::result::Result<Vec<_>, _>>()?;
112+
indexer.index_all(source_paths, self.continue_from, &NoCancellation)?;
107113
Ok(())
108114
}
109115
}

tree-sitter-stack-graphs/src/cli/query.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,9 @@ impl Definition {
7979
pub fn run(self, querier: &mut Querier) -> anyhow::Result<()> {
8080
let cancellation_flag = NoCancellation;
8181
let mut file_reader = FileReader::new();
82-
for reference in self.references {
82+
for mut reference in self.references {
83+
reference.canonicalize()?;
84+
8385
let results = querier.definitions(reference.clone(), &cancellation_flag)?;
8486
let numbered = results.len() > 1;
8587
let indent = if numbered { 6 } else { 0 };
@@ -144,11 +146,9 @@ impl<'a> Querier<'a> {
144146

145147
pub fn definitions(
146148
&mut self,
147-
mut reference: SourcePosition,
149+
reference: SourcePosition,
148150
cancellation_flag: &dyn CancellationFlag,
149151
) -> Result<Vec<QueryResult>> {
150-
reference.canonicalize()?;
151-
152152
let log_path = PathBuf::from(reference.to_string());
153153
let mut logger = self.logger.file(&log_path);
154154

tree-sitter-stack-graphs/src/cli/status.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ impl StatusArgs {
5151
self.status(&mut entries)?;
5252
} else {
5353
for source_path in &self.source_paths {
54+
let source_path = source_path.canonicalize()?;
5455
let mut files = db.list_file_or_directory(&source_path)?;
5556
let mut entries = files.try_iter()?;
5657
self.status(&mut entries)?;

0 commit comments

Comments
 (0)