LSSTApplications  11.0-24-g0a022a1,12.1-4-g110c6f4+31,15.0+15,15.0+9,15.0-1-g19261fa+7,15.0-1-g60afb23+15,15.0-1-g615e0bb+7,15.0-1-g6668b0b+5,15.0-1-g788a293+15,15.0-1-ga91101e+15,15.0-1-gae1598d+8,15.0-1-gd076f1f+14,15.0-1-gdf18595+2,15.0-1-gf4f1c34+8,15.0-2-g100d730+8,15.0-2-g18f3f21+9,15.0-2-g20c4630+3,15.0-2-g35685a8+10,15.0-2-g5dfaa72+3,15.0-2-gf38729e+9,15.0-23-g309a1dfe0+1,15.0-3-g150fc43+18,15.0-3-g6f085af+8,15.0-3-g707930d,15.0-3-g9103c06+8,15.0-3-ga03b4ca+21,15.0-3-gaec6799+5,15.0-4-g5589a47+1,15.0-4-g654b129+13,15.0-4-gff20472+18,15.0-5-g0db841d+2,15.0-5-g23e394c+2,15.0-6-g4cfb9db,15.0-6-g9a9df217+10,15.0-8-g0cd0e28,15.0-8-g11095dd+1,15.0-8-g306a5613+1
LSSTDataManagementBasePackage
Utils.cc
Go to the documentation of this file.
1 /*
2  * LSST Data Management System
3  * Copyright 2008, 2009, 2010 LSST Corporation.
4  *
5  * This product includes software developed by the
6  * LSST Project (http://www.lsst.org/).
7  *
8  * This program is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the LSST License Statement and
19  * the GNU General Public License along with this program. If not,
20  * see <http://www.lsstcorp.org/LegalNotices/>.
21  */
22 
23 #include "lsst/utils/Utils.h"
24 
25 #include <iostream>
26 #include <sstream>
27 #include <string>
28 #include "boost/regex.hpp"
29 #include "lsst/pex/exceptions.h"
30 
31 namespace lsst {
32 namespace utils {
33 
34 std::string getPackageDir(std::string const& packageName) {
35  std::string envVar = packageName; // package's environment variable
36 
37  transform(envVar.begin(), envVar.end(), envVar.begin(), (int (*)(int)) toupper);
38  envVar += "_DIR";
39 
40  char const *dir = getenv(envVar.c_str());
41  if (!dir) {
42  throw LSST_EXCEPT(lsst::pex::exceptions::NotFoundError, "Package " + packageName + " not found");
43  }
44 
45  return dir;
46 }
47 
48 }} // namespace lsst::utils
T end(T... args)
table::Key< int > transform
std::string getPackageDir(std::string const &packageName)
return the root directory of a setup package
Definition: Utils.cc:34
STL class.
Reports attempts to access elements using an invalid key.
Definition: Runtime.h:151
A base class for image defects.
Definition: cameraGeom.dox:3
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:47
T begin(T... args)