Ignore:
Timestamp:
Nov 5, 2013, 3:40:52 PM (11 years ago)
Author:
rybkin
Message:

See C.L. 511

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CMT/HEAD/source/cmt_commands.cxx

    r649 r652  
    19031903{
    19041904  cmt.m_disable_warnings = true;
    1905   if (CmtMessage::level () <= Warning)
    1906     CmtMessage::set_level (Error);
     1905//   if (CmtMessage::level () <= Warning)
     1906//     CmtMessage::set_level (Error);
     1907  if (!Cmt::add_cmt_flag ("-disable_warnings"))
     1908    CmtError::set (CmtError::system_error, "Cannot add flag `-disable_warnings'");
    19071909}
    19081910
     
    19101912{
    19111913  cmt.m_quiet = true;
    1912   if (CmtMessage::level () <= Error)
    1913     CmtMessage::set_level (Fatal);
     1914//   if (CmtMessage::level () <= Error)
     1915//     CmtMessage::set_level (Fatal);
     1916  if (!Cmt::add_cmt_flag ("-quiet"))
     1917    CmtError::set (CmtError::system_error, "Cannot add flag `-quiet'");
    19141918}
    19151919
     
    19181922{
    19191923  cmt.m_warnings = true;
    1920   if (CmtMessage::level () != Warning)
    1921     CmtMessage::set_level (Warning);
     1924//   if (CmtMessage::level () != Warning)
     1925//     CmtMessage::set_level (Warning);
     1926  if (!Cmt::add_cmt_flag ("-warnings"))
     1927    CmtError::set (CmtError::system_error, "Cannot add flag `-warnings'");
    19221928}
    19231929
     
    19631969      if (words.size () > 1) cmt.m_current_version = words[1];
    19641970      if (words.size () > 2) cmt.m_current_path    = words[2];
    1965       (Use::current()).set (cmt.m_current_package,
    1966                             cmt.m_current_version,
    1967                             cmt.m_current_path);
    1968 
    1969       Use& use = Use::current();
    1970       if (use.get_package_name () == "cmt_standalone")
    1971         {
    1972           if (!CmtSystem::cd (use.path) || !CmtSystem::test_file ("requirements"))
    1973             {
    1974               CmtError::set (CmtError::package_not_found, use.get_info ());
    1975               return;
    1976             }
    1977           use.style = none_style;
    1978           use.structuring_style = without_version_directory;
    1979           use.change_path (CmtSystem::pwd ());
    1980         }
    1981       else if (!use.move_to ())
    1982         {
    1983           CmtError::set (CmtError::package_not_found, use.get_info ());
    1984           return;
    1985         }
    1986       Project::order_all ();
    1987       Cmt::guess_current_project ();
    19881971    }
    19891972}
     
    19981981
    19991982      cmt.m_current_package = arg;
    2000       cmt.m_current_version = "";
    2001 
    2002       /*
    2003       cerr << "ArgParser::option_pack> "
    2004            << " cp=" << cmt.m_current_package
    2005            << " cv=" << cmt.m_current_version
    2006            << " cp=" << cmt.m_current_path << endl;
    2007       */
    2008 
    2009       (Use::current()).set (cmt.m_current_package,
    2010                             cmt.m_current_version,
    2011                             cmt.m_current_path);
     1983      //      cmt.m_current_version = "";
     1984
    20121985    }
    20131986}
     
    20191992      cmt.m_current_access = UserMode;
    20201993      cmt.m_current_version = arg;
    2021 
    2022       /*
    2023       cerr << "ArgParser::option_version> "
    2024            << " cp=" << cmt.m_current_package
    2025            << " cv=" << cmt.m_current_version
    2026            << " cp=" << cmt.m_current_path << endl;
    2027       */
    2028 
    2029       (Use::current()).set (cmt.m_current_package,
    2030                             cmt.m_current_version,
    2031                             cmt.m_current_path);
    20321994    }
    20331995}
     
    20392001      cmt.m_current_access = UserMode;
    20402002      cmt.m_current_path = arg;
    2041 
    2042       /*
    2043       cerr << "ArgParser::option_path> "
    2044            << " cp=" << cmt.m_current_package
    2045            << " cv=" << cmt.m_current_version
    2046            << " cp=" << cmt.m_current_path << endl;
    2047       */
    2048 
    2049       (Use::current()).set (cmt.m_current_package,
    2050                             cmt.m_current_version,
    2051                             cmt.m_current_path);
    2052 
    2053       //IProjectFactory& factory = ProjectFactory::instance ();
    2054       //CmtSystem::add_cmt_path (cmt.m_current_path, "argument", factory);
    2055       Use& use = Use::current();
    2056       if (use.get_package_name () == "cmt_standalone")
    2057         {
    2058           if (!CmtSystem::cd (use.path) || !CmtSystem::test_file ("requirements"))
    2059             {
    2060               CmtError::set (CmtError::package_not_found, use.get_info ());
    2061               return;
    2062             }
    2063           use.style = none_style;
    2064           use.structuring_style = without_version_directory;
    2065           use.change_path (CmtSystem::pwd ());
    2066         }
    2067       else if (!use.move_to ())
    2068         {
    2069           CmtError::set (CmtError::package_not_found, use.get_info ());
    2070           return;
    2071         }
    2072       Project::order_all ();
    2073       Cmt::guess_current_project ();
    20742003    }
    20752004}
     
    20822011void ArgParser::option_e ()
    20832012{
    2084   //CmtMessage::warning ("extra statement = " + arg);
    20852013  extra_line = arg;
    20862014}
     
    21012029  if (arg != "")
    21022030    {
     2031      cmt.m_tags.clear ();
     2032      CmtSystem::cmt_string_vector words;
     2033      CmtSystem::split (arg, " \t,", words);
     2034      for (int i = 0; i < words.size (); i++)
     2035        {
     2036          bool has (false);
     2037          for (int j = 0; j < cmt.m_tags.size (); j++)
     2038            {
     2039              if (cmt.m_tags[j] == words[i])
     2040                {
     2041                  has = true;
     2042                  break;
     2043                }
     2044            }
     2045          if (!has)
     2046            cmt.m_tags.push_back (words[i]);
     2047        }
     2048
     2049      if (cmt.m_tags.size () != 0)
     2050        {
     2051          cmt.m_extra_tags.clear ();
     2052          cmt.m_tags_add.clear ();
     2053          cmt.m_tags_remove.clear ();
     2054        }
     2055
     2056      /*
    21032057      Tag* tag;
    21042058      CmtSystem::cmt_string_vector words;
     
    21542108        // To be sure that a tag
    21552109        Cmt::guess_current_project ();
     2110      */
    21562111    }
    21572112}
     
    21592114void ArgParser::option_tag_add ()
    21602115{
     2116  CmtSystem::cmt_string_vector words;
     2117  CmtSystem::split (arg, " \t,", words);
     2118  for (int i = 0; i < words.size (); i++)
     2119    {
     2120      bool has (false);
     2121      for (int j = 0; j < cmt.m_tags_add.size (); j++)
     2122        {
     2123          if (cmt.m_tags_add[j] == words[i])
     2124            {
     2125              has = true;
     2126              break;
     2127            }
     2128        }
     2129      if (!has)
     2130        {
     2131          cmt.m_tags_add.push_back (words[i]);
     2132        }
     2133     
     2134      for (int j = 0; j < cmt.m_tags_remove.size (); j++)
     2135        {
     2136          if (cmt.m_tags_remove[j] == words[i])
     2137            {
     2138              cmt.m_tags_remove.erase(j);
     2139              break;
     2140            }
     2141        }
     2142    }
     2143  /*
    21612144  Tag* tag;
    21622145  CmtSystem::cmt_string_vector words;
     
    21912174        }
    21922175    }
     2176  */
    21932177}
    21942178
    21952179void ArgParser::option_tag_remove ()
    21962180{
     2181  CmtSystem::cmt_string_vector words;
     2182  CmtSystem::split (arg, " \t,", words);
     2183  for (int i = 0; i < words.size (); i++)
     2184    {
     2185      bool has (false);
     2186      for (int j = 0; j < cmt.m_tags_remove.size (); j++)
     2187        {
     2188          if (cmt.m_tags_remove[j] == words[i])
     2189            {
     2190              has = true;
     2191              break;
     2192            }
     2193        }
     2194      if (!has)
     2195        {
     2196          cmt.m_tags_remove.push_back (words[i]);
     2197        }
     2198
     2199      for (int j = 0; j < cmt.m_extra_tags.size (); j++)
     2200        {
     2201          if (cmt.m_extra_tags[j] == words[i])
     2202            {
     2203              cmt.m_extra_tags.erase(j);
     2204              break;
     2205            }
     2206        }
     2207      for (int j = 0; j < cmt.m_tags.size (); j++)
     2208        {
     2209          if (cmt.m_tags[j] == words[i])
     2210            {
     2211              cmt.m_tags.erase(j);
     2212              break;
     2213            }
     2214        }
     2215      for (int j = 0; j < cmt.m_tags_add.size (); j++)
     2216        {
     2217          if (cmt.m_tags_add[j] == words[i])
     2218            {
     2219              cmt.m_tags_add.erase(j);
     2220              break;
     2221            }
     2222        }
     2223    }
     2224  /*
    21972225  Tag::TagPtrVector tags = Tag::tags ();
    21982226  int i;
    21992227  Tag* tag;
    2200 
    2201   /*
    2202     for (i = 0; i < tags.size (); i++)
    2203     {
    2204     tag = tags[i];
    2205     if ((tag != 0) &&
    2206     (tag->selected))
    2207     {
    2208     if (!cmt.m_quiet) cerr << "  original tag_list=" << tag->name << tag->priority << endl;
    2209     }
    2210     }
    2211   */
    22122228
    22132229  CmtSystem::cmt_string_vector words;
     
    22622278            const cmt_string& a = words[i];
    22632279
    2264             //fprintf (stderr, "  a=[%s]\n", a.c_str ());
    2265 
    22662280            /// Then restore uname if the specified tag is CMTCONFIG
    22672281              if (a == CmtSystem::get_cmt_config ())
     
    22862300              tag->mark ("arguments");
    22872301          }
     2302  */
    22882303}
    22892304
     
    23142329  cmt.m_current_structuring_style = with_version_directory;
    23152330
    2316   StrategyDef* def = StrategyMgr::find_strategy ("VersionDirectory");
    2317   if (def != 0)
    2318     {
    2319       def->m_default_value = true;
    2320       def->m_priority_value = false;
    2321     }
     2331  if (!Cmt::add_cmt_flag ("-with_version_directory"))
     2332    CmtError::set (CmtError::system_error, "Cannot add flag `-with_version_directory'");
     2333
    23222334}
    23232335
     
    23262338  cmt.m_current_structuring_style = without_version_directory;
    23272339
    2328   StrategyDef* def = StrategyMgr::find_strategy ("VersionDirectory");
    2329   if (def != 0)
    2330     {
    2331       def->m_default_value = false;
    2332       def->m_priority_value = true;
    2333     }
     2340  if (!Cmt::add_cmt_flag ("-without_version_directory"))
     2341    CmtError::set (CmtError::system_error, "Cannot add flag `-without_version_directory'");
     2342
    23342343}
    23352344
     
    24012410  cout << "#   -path=<path>            : set root path" << endl;
    24022411  cout << "#   -f=<requirements-file>  : set input file" << endl;
    2403   cout << "#   -e=<statement>          : add a one line statement" << endl;
     2412  cout << "#   -e=<statement(s)>       : add (multiple) statement(s)" << endl;
    24042413  cout << "#   -tag=<tag-list>         : select a new tag-set" << endl;
    24052414  cout << "#   -tag_add=<tag-list>     : add specific comma-separated tag(s)" << endl;
     
    24112420  cout << "#   -no_cleanup             : inhibit install area cleanup" << endl;
    24122421  cout << "#   -xml                    : output in XML format (cmt setup, cmt show projects, cmt show uses)" << endl;
     2422  cout << "#   -user_context=<path>    : set user context package/project directory" << endl;
     2423  cout << "#   -home=<path>            : set home package/project directory" << endl;
    24132424}
    24142425
Note: See TracChangeset for help on using the changeset viewer.