Print

Print


Author: [log in to unmask]
Date: Wed Apr 15 12:18:30 2015
New Revision: 2710

Log:
By default use console prompt to verify making a new tag.

Modified:
    java/trunk/conditions/src/main/java/org/hps/conditions/cli/TagCommand.java

Modified: java/trunk/conditions/src/main/java/org/hps/conditions/cli/TagCommand.java
 =============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/cli/TagCommand.java	(original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/cli/TagCommand.java	Wed Apr 15 12:18:30 2015
@@ -44,7 +44,7 @@
         OPTIONS.getOption("r").setRequired(true);
         OPTIONS.addOption(new Option("t", true, "The new conditions tag"));
         OPTIONS.getOption("t").setRequired(true);
-        OPTIONS.addOption(new Option("X", true, "Actually make the new tag in the database (dry run is default)"));
+        OPTIONS.addOption(new Option("f", false, "Don't prompt before making tag (careful!)"));
     }
 
     /**
@@ -77,9 +77,9 @@
             throw new RuntimeException("Missing required -t argument with the tag name.");
         }
 
-        boolean makeTag = false;
-        if (commandLine.hasOption("X")) {
-            makeTag = true;
+        boolean dontPrompt = false;
+        if (commandLine.hasOption("f")) {
+            dontPrompt = true;
         }
 
         final ConditionsRecordCollection tagRecords = new ConditionsRecordCollection();
@@ -88,9 +88,6 @@
         final DatabaseConditionsManager manager = DatabaseConditionsManager.getInstance();
         manager.setXmlConfig("/org/hps/conditions/config/conditions_database_no_svt.xml");
         manager.setLogLevel(Level.ALL);
-
-        // DEBUG: Hard-coded to development connection for now.
-        manager.setConnectionResource("/org/hps/conditions/config/jlab_dev_connection.prop");
 
         // Scan through all the runs between the start and end run, inclusive.
         for (final Integer run : runNumbers) {
@@ -143,19 +140,23 @@
             System.out.println(record.toString());
         }
 
-        // TODO: Could have command line "Y/N" confirmation here to apply the tag.
+        // Prompt user to verify with console input.
+        boolean makeTag = true;
+        if (!dontPrompt) {
+            System.out.println("Create conditions tag " + newTag + " in database?  (Y/N)");
+            final String line = System.console().readLine();
+            if (!line.equals("Y")) {
+                makeTag = false;
+            }
+        }
 
-        // A tag will only be made if the -X was present in the command line arguments.
+        // Create the tag in the database if user verified or force option was present.
         if (makeTag) {
             try {
                 tagRecords.insert();
             } catch (ConditionsObjectException | SQLException e) {
                 throw new RuntimeException(e);
             }
-        } else {
-            System.out.println("tag was NOT applied (use -X to do this)");
         }
-
-        System.out.println("DONE!");
     }
 }