@@ -104,12 +104,12 @@ public int onStartCommand(Intent intent, int flags, int startId) {
104
104
return Service .START_NOT_STICKY ;
105
105
}
106
106
107
- Uri programUri = new Uri .Builder ().scheme ("com.termux.file" ).path (parsePath (intent .getStringExtra (RUN_COMMAND_PATH ))).build ();
107
+ Uri programUri = new Uri .Builder ().scheme ("com.termux.file" ).path (getExpandedTermuxPath (intent .getStringExtra (RUN_COMMAND_PATH ))).build ();
108
108
109
109
Intent execIntent = new Intent (TermuxService .ACTION_EXECUTE , programUri );
110
110
execIntent .setClass (this , TermuxService .class );
111
111
execIntent .putExtra (TermuxService .EXTRA_ARGUMENTS , intent .getStringArrayExtra (RUN_COMMAND_ARGUMENTS ));
112
- execIntent .putExtra (TermuxService .EXTRA_CURRENT_WORKING_DIRECTORY , parsePath (intent .getStringExtra (RUN_COMMAND_WORKDIR )));
112
+ execIntent .putExtra (TermuxService .EXTRA_CURRENT_WORKING_DIRECTORY , getExpandedTermuxPath (intent .getStringExtra (RUN_COMMAND_WORKDIR )));
113
113
execIntent .putExtra (TermuxService .EXTRA_EXECUTE_IN_BACKGROUND , intent .getBooleanExtra (RUN_COMMAND_BACKGROUND , false ));
114
114
115
115
if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .O ) {
@@ -188,10 +188,12 @@ private boolean allowExternalApps() {
188
188
}
189
189
190
190
/** Replace "$PREFIX/" or "~/" prefix with termux absolute paths */
191
- private String parsePath (String path ) {
191
+ public static String getExpandedTermuxPath (String path ) {
192
192
if (path != null && !path .isEmpty ()) {
193
- path = path .replaceAll ("^\\ $PREFIX\\ /" , TermuxService .PREFIX_PATH + "/" );
194
- path = path .replaceAll ("^~\\ /" , TermuxService .HOME_PATH + "/" );
193
+ path = path .replaceAll ("^\\ $PREFIX$" , TermuxService .PREFIX_PATH );
194
+ path = path .replaceAll ("^\\ $PREFIX/" , TermuxService .PREFIX_PATH + "/" );
195
+ path = path .replaceAll ("^~/$" , TermuxService .HOME_PATH );
196
+ path = path .replaceAll ("^~/" , TermuxService .HOME_PATH + "/" );
195
197
}
196
198
197
199
return path ;
0 commit comments