@@ -44,7 +44,10 @@ async fn cli(
4444 }
4545 } ;
4646 let cli = format ! ( "tree-sitter-{platform}" ) ;
47- let res = PathBuf :: new ( ) . join ( build_dir) . join ( & cli) . canon ( ) ?;
47+ let res = PathBuf :: new ( )
48+ . join ( build_dir)
49+ . join ( format ! ( "{cli}-{tag}" ) )
50+ . canon ( ) ?;
4851
4952 if !res. exists ( ) {
5053 handle. msg ( format ! ( "Downloading {tag}" , ) ) ;
@@ -74,7 +77,7 @@ async fn download(gz: &Path, url: &str) -> TsdlResult<()> {
7477
7578async fn download_and_extract ( gz : & Path , url : & str , res : & Path ) -> TsdlResult < ( ) > {
7679 download ( gz, url) . await ?;
77- gunzip ( gz) . await ?;
80+ gunzip ( gz, res ) . await ?;
7881 chmod_x ( res) . await ?;
7982 fs:: remove_file ( gz)
8083 . await
@@ -97,16 +100,16 @@ fn find_tag(refs: &HashMap<String, String>, version: &str) -> Tag {
97100 )
98101}
99102
100- async fn gunzip ( gz : & Path ) -> TsdlResult < ( ) > {
103+ async fn gunzip ( gz : & Path , to : & Path ) -> TsdlResult < ( ) > {
101104 let file = fs:: File :: open ( gz)
102105 . await
103106 . map_err ( |e| TsdlError :: context ( format ! ( "opening {}" , gz. display( ) ) , e) ) ?;
104107 let mut decompressor = GzipDecoder :: new ( tokio:: io:: BufReader :: new ( file) ) ;
105- let path = gz. with_extension ( "" ) ;
108+ // let path = gz.with_extension("");
106109
107- let mut file = tokio:: fs:: File :: create ( & path )
110+ let mut file = tokio:: fs:: File :: create ( to )
108111 . await
109- . map_err ( |e| TsdlError :: context ( format ! ( "creating {}" , path . display( ) ) , e) ) ?;
112+ . map_err ( |e| TsdlError :: context ( format ! ( "creating {}" , to . display( ) ) , e) ) ?;
110113
111114 io:: copy ( & mut decompressor, & mut file)
112115 . await
0 commit comments