blob: e99daf683915f8df0c2d8173a9d679bb55329e3b [file] [log] [blame]
// Copyright 2012 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Defines member function for a generic application implementation base
// class (empty implementation).
#include "syzygy/application/application.h"
#include "base/files/file_enumerator.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h"
namespace application {
AppImplBase::AppImplBase(const base::StringPiece& name)
: in_(stdin), out_(stdout), err_(stderr) {
name_.assign(name.begin(), name.end());
}
bool AppImplBase::ParseCommandLine(const base::CommandLine* command_line) {
return true;
}
bool AppImplBase::SetUp() {
return true;
}
int AppImplBase::Run() {
return 0;
}
void AppImplBase::TearDown() {
}
base::FilePath AppImplBase::AbsolutePath(const base::FilePath& path) {
if (path.empty())
return base::FilePath();
base::FilePath temp(base::MakeAbsoluteFilePath(path));
if (temp.empty())
return path;
else
return temp;
}
bool AppImplBase::AppendMatchingPaths(const base::FilePath& pattern,
std::vector<base::FilePath>* matches) {
DCHECK(matches != NULL);
bool found_a_match = false;
// Whether the pattern is an existing file or not, we expand it as a glob.
// If it's a file, it'll match itself and nothing else.
base::FileEnumerator files(AbsolutePath(pattern.DirName()),
false,
base::FileEnumerator::FILES,
pattern.BaseName().value());
while (true) {
base::FilePath file = files.Next();
if (file.empty())
break;
DCHECK(file.IsAbsolute());
found_a_match = true;
matches->push_back(file);
}
return found_a_match;
}
} // namespace application