Here's a patch that allows you to install from any local directory from the
command line, building on what Harry did.

A Changelog entry is also attached.

                        -Len


Index: setup/localdir.cc
===================================================================
RCS file: /cvs/cygwin-apps/setup/localdir.cc,v
retrieving revision 2.11
diff -u -p -r2.11 localdir.cc
--- setup/localdir.cc   4 May 2002 12:15:56 -0000       2.11
+++ setup/localdir.cc   3 Oct 2002 18:44:25 -0000
@@ -158,18 +158,25 @@ LocalDirPage::OnInit ()
   static int inited = 0;
   if (!inited)
     {
-      io_stream *f =
-       io_stream::open ("cygfile:///etc/setup/last-cache", "rt");
-      if (!f)
-       f = io_stream::open ("file://last-cache", "rt");
-      if (f)
-       {
-         char localdir[1000];
-         char *fg_ret = f->gets (localdir, 1000);
-         delete f;
-         if (fg_ret)
-           local_dir = String (localdir);
-       }
+      if (local_directory.size())
+        {
+          local_dir = String (local_directory);
+        }
+      else
+        {
+          io_stream *f =
+           io_stream::open ("cygfile:///etc/setup/last-cache", "rt");
+          if (!f)
+           f = io_stream::open ("file://last-cache", "rt");
+          if (f)
+           {
+             char localdir[1000];
+             char *fg_ret = f->gets (localdir, 1000);
+             delete f;
+             if (fg_ret)
+               local_dir = String (localdir);
+           }
+        }
       inited = 1;
     }
 }
Index: setup/source.cc
===================================================================
RCS file: /cvs/cygwin-apps/setup/source.cc,v
retrieving revision 2.13
diff -u -p -r2.13 source.cc
--- setup/source.cc     21 Sep 2002 09:36:46 -0000      2.13
+++ setup/source.cc     3 Oct 2002 18:44:25 -0000
@@ -34,9 +34,10 @@ static const char *cvsid =
 #include "source.h"
 
 #include "getopt++/BoolOption.h"
+#include "getopt++/StringOption.h"
 
 static BoolOption DownloadOption (false, 'D', "download", "Download from internet");
-static BoolOption LocalOption (false, 'L', "local-install", "Install from local 
directory");
+static StringOption LocalOption ("", 'L', "local-install", "Install from local 
+directory");
 
 static int rb[] =
   { IDC_SOURCE_NETINST, IDC_SOURCE_DOWNLOAD, IDC_SOURCE_CWD, 0 };
@@ -87,8 +88,11 @@ SourcePage::OnActivate ()
     {
       if (DownloadOption) 
        source = IDC_SOURCE_DOWNLOAD;
-      else if (LocalOption)
-       source = IDC_SOURCE_CWD;
+      else if (((string)LocalOption).size())
+        {
+         source = IDC_SOURCE_CWD;
+          local_directory = (string)LocalOption;
+        }
       else
        source = IDC_SOURCE_NETINST;
     }
Index: setup/state.cc
===================================================================
RCS file: /cvs/cygwin-apps/setup/state.cc,v
retrieving revision 2.3
diff -u -p -r2.3 state.cc
--- setup/state.cc      21 Sep 2002 09:36:46 -0000      2.3
+++ setup/state.cc      3 Oct 2002 18:44:25 -0000
@@ -27,6 +27,7 @@ bool unattended_mode;
 int source;
 
 String local_dir;
+String local_directory;
 
 int root_text;
 int root_scope;
Index: setup/state.h
===================================================================
RCS file: /cvs/cygwin-apps/setup/state.h,v
retrieving revision 2.8
diff -u -p -r2.8 state.h
--- setup/state.h       21 Sep 2002 09:36:46 -0000      2.8
+++ setup/state.h       3 Oct 2002 18:44:25 -0000
@@ -33,6 +33,7 @@ extern bool unattended_mode;
 extern int source;
 
 extern String local_dir;
+extern String local_directory;
 
 extern int root_text;
 extern int root_scope;
2002-10-03  Len Giambrone  <[EMAIL PROTECTED]>

        * source.cc (SourcePage::OnActivate): Support specification of Local
          install directory from command line.
        * localdir.cc (LocalDirPage::OnInit): Initialize local_dir from command
          line if available.
        * state.cc: add local_directory.
        * state.h:  add local_directory.

Reply via email to