Select Git revision
getOutputProcHosts.cc
-
Alexander van Amesfoort authored
Task #9939: Cobalt getOutputProcHosts: fix trailing space. When coverted to a ',', 'srun -w' can still deal with it, but other parts of our shell scripts do not like it
Alexander van Amesfoort authoredTask #9939: Cobalt getOutputProcHosts: fix trailing space. When coverted to a ',', 'srun -w' can still deal with it, but other parts of our shell scripts do not like it
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
getOutputProcHosts.cc 2.33 KiB
//# getOutputProcHosts.cc: Real-Time Central Processor application, GPU cluster version
//# Copyright (C) 2012-2013 ASTRON (Netherlands Institute for Radio Astronomy)
//# P.O. Box 2, 7990 AA Dwingeloo, The Netherlands
//#
//# This file is part of the LOFAR software suite.
//# The LOFAR software suite is free software: you can redistribute it and/or
//# modify it under the terms of the GNU General Public License as published
//# by the Free Software Foundation, either version 3 of the License, or
//# (at your option) any later version.
//#
//# The LOFAR software suite is distributed in the hope that it will be useful,
//# but WITHOUT ANY WARRANTY; without even the implied warranty of
//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//# GNU General Public License for more details.
//#
//# You should have received a copy of the GNU General Public License along
//# with the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>.
//#
//# $Id$
#include <lofar_config.h>
#include <unistd.h>
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <CoInterface/Parset.h>
using namespace std;
using namespace LOFAR;
using namespace LOFAR::Cobalt;
static void usage(const char *argv0)
{
cerr << "getOutputProcHosts: Helper program used in combination with rtcp" << endl;
cerr << "Outputs a space seperate list of outputProc hosts on the stdout" << endl;
cerr << "These hosts are retrieved using the parset (parset) class" << endl;
cerr << endl;
cerr << "Usage: " << argv0 << " parset" << endl;
cerr << endl;
}
int main(int argc, char **argv)
{
/*
* Parse command-line options
*/
int opt;
while ((opt = getopt(argc, argv, "h")) != -1) {
switch (opt) {
default: /* '?' */
usage(argv[0]);
exit(1);
}
}
// we expect a parset filename as an additional parameter
if (optind >= argc) {
usage(argv[0]);
exit(1);
}
INIT_LOGGER("rtcp"); // reuse rtcp.log_prop
// Open the parset
Parset ps(argv[optind]);
// Get the list of stations and output to stdout space separated
std::vector<string>::const_iterator host = ps.settings.outputProcHosts.begin();
if (host != ps.settings.outputProcHosts.end()) {
cout << *host;
++host;
for ( ; host != ps.settings.outputProcHosts.end(); ++host) {
cout << ' ' << *host;
}
}
return 0;
}