nis-util
1.0.D108
|
00001 // 00002 // nis-util - NIS Administration Utilities 00003 // Copyright (C) 2012 Peter Miller 00004 // 00005 // This program is free software; you can redistribute it and/or modify 00006 // it under the terms of the GNU General Public License as published by 00007 // the Free Software Foundation; either version 2 of the License, or (at 00008 // your option) any later version. 00009 // 00010 // This program is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 // General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU General Public License along 00016 // with this program. If not, see <http://www.gnu.org/licenses/>. 00017 // 00018 00019 #include <lib/ac/string.h> 00020 00021 #include <lib/space/automap/functor/direct.h> 00022 #include <lib/space/automap.h> 00023 00024 00025 space_automap_functor_direct::~space_automap_functor_direct() 00026 { 00027 } 00028 00029 00030 space_automap_functor_direct::space_automap_functor_direct( 00031 space_automap *a_context 00032 ) : 00033 context(a_context) 00034 { 00035 } 00036 00037 00038 void 00039 space_automap_functor_direct::walk(const space_automap_row::pointer &rp) 00040 { 00041 const mount_point &mp = rp->get_mount_point(); 00042 if (!mp.is_absolute()) 00043 { 00044 rcstring suggest = mp.get_mount_point(); 00045 suggest = suggest.replace("/", "-", suggest.size()); 00046 suggest = "/" + mp.get_mount_point(); 00047 context->error 00048 ( 00049 mp.get_source_location(), 00050 "mount points must be absolute for direct maps, " 00051 "suggest %s instead", 00052 suggest.quote_c().c_str() 00053 ); 00054 return; 00055 } 00056 if (strchr(mp.get_mount_point().c_str() + 1, '/')) 00057 { 00058 rcstring suggest = mp.get_mount_point(); 00059 suggest = suggest.substr(1, suggest.size()); 00060 suggest = "/" + suggest.replace("/", "-", suggest.size()); 00061 context->error 00062 ( 00063 mp.get_source_location(), 00064 "mount points may not have sub-directories, " 00065 "suggest %s instead", 00066 suggest.quote_c().c_str() 00067 ); 00068 return; 00069 } 00070 } 00071 00072 00073 // vim: set ts=8 sw=4 et :