Corrected compiler error
[rofl0r-motor.git] / src / manager / motormanager.cc
blob44c70a77108333ccdfd8a5546effa8cbf43c9317
1 #include "motormanager.h"
2 #include "motorconfiguration.h"
4 #include "kkfsys.h"
6 #include <dirent.h>
8 motormanager::motormanager() {
11 motormanager::~motormanager() {
14 vector<projectname> motormanager::getprojectlist() {
15 struct dirent *ent;
16 DIR *d;
17 vector<projectname> result;
18 projectname pname;
20 if(d = opendir(conf.getprojectdir().c_str())) {
21 while(ent = readdir(d)) {
22 pname = projectname();
23 if(pname.load(ent->d_name)) {
24 result.push_back(pname);
28 closedir(d);
31 sort(result.begin(), result.end());
32 return result;
35 INT motormanager::addtemplate(const char *file, const struct stat *sb, INT flag) {
36 INT pos;
37 string tname = file, buf;
39 if(flag == FTW_F)
40 if(pos = tname.find("/templates/")) {
41 tname.erase(0, pos+11);
42 getrword(tname, "/");
43 tname = trailcut(leadcut(tname, "/"), "/");
44 buf = getrword(buf = tname, "/");
46 if(buf != "CVS") {
47 buf = justfname(file);
48 if(buf.substr(0, 8) != "Makefile")
49 if(find(manager.container.begin(), manager.container.end(), tname)
50 == manager.container.end())
51 manager.container.push_back(tname);
55 return 0;
58 vector<string> motormanager::gettemplatelist() {
59 container.clear();
60 ftw(conf.gettemplatedir().c_str(), &addtemplate, 5);
61 sort(container.begin(), container.end());
62 return container;
65 vector<string> motormanager::getvcslist() {
66 DIR *d;
67 struct dirent *e;
68 vector<string> r;
69 string dname, fname;
70 INT i, dp;
72 for(i = 0; i < 2; i++) {
73 if(i) {
74 dname = SHARE_DIR;
75 } else {
76 dname = conf.getmotordir();
79 if(d = opendir(dname.c_str())) {
80 while(e = readdir(d)) {
81 fname = e->d_name;
83 if((dp = fname.find(".")) != -1)
84 if(fname.substr(dp+1) == "vcsrc") {
85 fname.erase(dp);
86 if(find(r.begin(), r.end(), fname) == r.end())
87 r.push_back(fname);
91 closedir(d);
95 return r;