aboutsummaryrefslogtreecommitdiff
path: root/src/path.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/path.cc')
-rw-r--r--src/path.cc42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/path.cc b/src/path.cc
new file mode 100644
index 0000000..519fd20
--- /dev/null
+++ b/src/path.cc
@@ -0,0 +1,42 @@
+#include "path.h"
+
+namespace ov4
+{
+
+using namespace std;
+
+string find_cmd(char* s)
+{
+ string tmp = s;
+ return find_cmd(tmp);
+}
+
+string find_cmd(string s)
+{
+ if (s.size() == 0) return "/";
+ if (s[0] == '/') return s;
+
+ string path = getenv("PATH");
+ size_t i = 0, j = 0, l = path.size();
+ while (true)
+ {
+ for (; j < l; j++)
+ if (path[j] == ':')
+ break;
+
+ string cmd = path.substr(i, j-i) + '/' +s;
+ cout << cmd << endl;
+ if (access(cmd.c_str(), F_OK) == 0)
+ return cmd;
+
+ if (j == l)
+ return "/";
+
+ j++;
+ i=j;
+
+ }
+}
+
+
+}