Subversion Repositories HomeAutomation

Rev

Rev 1642 | Rev 1647 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 1642 Rev 1644
Line 181... Line 181...
181
    return true;
181
    return true;
182
}
182
}
183
 
183
 
184
bool Manager::LoadScript(std::string scriptname)
184
bool Manager::LoadScript(std::string scriptname)
185
{
185
{
-
 
186
    for (unsigned int n = 0; n < this->loaded_scripts_.size(); n++)
-
 
187
    {
-
 
188
        if (this->loaded_scripts_[n] == scriptname)
-
 
189
        {
-
 
190
            LOG.Info(scriptname + " is already loaded.");
-
 
191
            return true;
-
 
192
        }
-
 
193
    }
-
 
194
   
186
    std::string path = this->script_path_ + scriptname;
195
    std::string path = this->script_path_ + scriptname;
187
    std::ifstream file(path.data());
196
    std::ifstream file(path.data());
188
   
197
   
189
    if (!file.is_open())
198
    if (!file.is_open())
190
    {
199
    {
Line 192... Line 201...
192
        LOG.Warning("Could not load " + scriptname + ".");
201
        LOG.Warning("Could not load " + scriptname + ".");
193
        return false;
202
        return false;
194
    }
203
    }
195
   
204
   
196
    std::string code = "";
205
    std::string code = "";
197
    std::string line;
206
    std::string line;
198
   
207
   
199
    while (!file.eof())
208
    while (!file.eof())
200
    {
209
    {
201
        std::getline(file, line);
210
        std::getline(file, line);
202
       
211
       
203
        if (file.eof())
212
        if (file.eof())
204
        {
213
        {
205
            break;
214
            break;
206
        }
215
        }
207
       
216
       
208
        code += line + "\n";
217
        code += line + "\n";
209
    }
218
    }
210
   
219
   
211
    code += "\n";
220
    code += "\n";
212
   
221
   
213
    file.close();
222
    file.close();
214
   
223
   
215
    v8::Context::Scope context_scope(this->context_);
224
    v8::Context::Scope context_scope(this->context_);
216
   
225
   
Line 232... Line 241...
232
        {
241
        {
233
            LOG.Error(this->FormatException(try_catch));
242
            LOG.Error(this->FormatException(try_catch));
234
            return false;
243
            return false;
235
        }
244
        }
236
    }
245
    }
-
 
246
   
-
 
247
    this->loaded_scripts_.push_back(scriptname);
237
   
248
   
238
    LOG.Info("Loaded " + scriptname + " successfully.");
249
    LOG.Info("Loaded " + scriptname + " successfully.");
239
    return true;
250
    return true;
240
}
251
}
241
 
252