@@ -124,6 +124,8 @@ public CompletableFuture<Pair<Boolean, String>> isUptoDate() {
124124
125125 // Check if file is corrupt
126126 if (fileHash .compareTo (file )) {
127+ Modflared .LOGGER .info ("Preparing cloudflared binary..." );
128+ prepareFile (file );
127129 Modflared .LOGGER .info ("Download finished of cloudflared version {}!" , version );
128130 return ;
129131 } else {
@@ -139,6 +141,20 @@ public CompletableFuture<Pair<Boolean, String>> isUptoDate() {
139141 }, Modflared .EXECUTOR );
140142 }
141143
144+ private void prepareFile (File file ) throws IOException , InterruptedException {
145+ switch (Platform .get ()) {
146+ case MACOSX :
147+ new ProcessBuilder ("tar" , "-xzf" , file .getName ()).directory (file .getParentFile ()).start ().waitFor ();
148+ new ProcessBuilder ("mv" , "cloudflared" , file .getName ()).directory (file .getParentFile ()).start ().waitFor ();
149+ //Fallthrough
150+ case LINUX :
151+ new ProcessBuilder ("chmod" , "+x" , file .getName ()).directory (file .getParentFile ()).start ();
152+ break ;
153+ default :
154+ break ;
155+ }
156+ }
157+
142158 private @ NotNull File syncDownloadFile () throws IOException , InterruptedException {
143159 File output = new File (TunnelManager .DATA_FOLDER , download .fileName ());
144160 if (!output .getParentFile ().exists ()) output .getParentFile ().mkdirs ();
@@ -152,17 +168,6 @@ public CompletableFuture<Pair<Boolean, String>> isUptoDate() {
152168 fileOutputStream .flush ();
153169 }
154170
155- switch (Platform .get ()) {
156- case MACOSX :
157- new ProcessBuilder ("tar" , "-xzf" , output .getName ()).directory (output .getParentFile ()).start ().waitFor ();
158- new ProcessBuilder ("mv" , "cloudflared" , output .getName ()).directory (output .getParentFile ()).start ().waitFor ();
159- //Fallthrough
160- case LINUX :
161- new ProcessBuilder ("chmod" , "+x" , output .getName ()).directory (output .getParentFile ()).start ();
162- break ;
163- default :
164- break ;
165- }
166171 return output ;
167172 }
168173
0 commit comments