sqlcsv: possibilité de spécifier le chemin de chargement des drivers jdbc
This commit is contained in:
parent
a7e6228669
commit
48e43599b8
49
sqlcsv
49
sqlcsv
|
@ -1050,6 +1050,15 @@ public class sqlcsv {
|
|||
+ "\najoutés au CLASSPATH. La présence de certains fichiers est testée pour activer"
|
||||
+ "\néventuellement les logs détaillés."
|
||||
+ "\n\nOPTIONS"
|
||||
+ "\n -J<JARDIR>"
|
||||
+ "\n +J<JARDIR>"
|
||||
+ "\n Spécifier un répertoire de chargement des drivers JDBC."
|
||||
+ "\n Avec l'option -J, le répertoire spécifié est ajouté aux répertoires de"
|
||||
+ "\n configuration par défaut ~/.sqlcsv et /etc/sqlcsv. Avec la variante +J,"
|
||||
+ "\n seul le répertoire spécifié est analysé."
|
||||
+ "\n Cette option *doit* être spécifiée en premier et il ne doit pas y avoir"
|
||||
+ "\n d'espace entre l'option et son argument."
|
||||
+ "\n"
|
||||
+ "\n -C, --config CONFIG"
|
||||
+ "\n Prendre les informations de connexion depuis le fichier de propriété"
|
||||
+ "\n spécifié. Pour l'identifiant CONN, la propriété 'CONN.url' doit exister"
|
||||
|
@ -1071,8 +1080,8 @@ public class sqlcsv {
|
|||
+ "\n Si -C n'est pas spécifié et que -l est spécifié, alors l'identifiant de"
|
||||
+ "\n connexion est enregistré dans les préférences utilisateur. Si ni -C"
|
||||
+ "\n ni -l ne sont spécifiés, alors le dernier identifiant est utilisé s'il"
|
||||
+ "\n existe. L'option -z permet de démarrer comme si aucun identifiant n'avait"
|
||||
+ "\n jamais été enregistré."
|
||||
+ "\n existe. L'option -z permet de démarrer comme si aucun identifiant"
|
||||
+ "\n n'avait jamais été enregistré."
|
||||
+ "\n -u, --user USER"
|
||||
+ "\n -p, --password PASSWORD"
|
||||
+ "\n Spécifier un nom de connexion et un mot de passe si l'url ne le fournit"
|
||||
|
@ -1091,7 +1100,7 @@ public class sqlcsv {
|
|||
+ "\n requête. Sinon, il est possible de spécifier plusieurs fois cette option"
|
||||
+ "\n pour nommer les fichiers correspondant à chaque requête."
|
||||
+ "\n -t, --autocommit"
|
||||
+ "\n Activer le mode autocommit"
|
||||
+ "\n Activer le mode autocommit. Par défaut, le mode autocommit n'est pas activé"
|
||||
+ "\n -c, --ignore-io-error"
|
||||
+ "\n Continuer le traitement même en cas d'erreur du système de fichiers."
|
||||
+ "\n Cependant le traitement s'arrête et la transaction est annulée si une"
|
||||
|
@ -1146,7 +1155,9 @@ public class sqlcsv {
|
|||
int i = 0, max = args.length;
|
||||
while (i < max) {
|
||||
String arg = args[i];
|
||||
if (arg.equals("-C") || arg.equals("--config")) {
|
||||
if (arg.substring(0, 2).equals("-J") || arg.substring(0, 2).equals("+J")) {
|
||||
die("L'option -J doit être spécifiée en premier", null);
|
||||
} else if (arg.equals("-C") || arg.equals("--config")) {
|
||||
config = getArg(args, ++i, "Vous devez spécifier le fichier de configuration");
|
||||
} else if (arg.equals("-l") || arg.equals("--conn")) {
|
||||
connid = getArg(args, ++i, "Vous devez spécifier l'identifiant de connexion");
|
||||
|
@ -1387,10 +1398,36 @@ public class sqlcsv {
|
|||
|| new File(SYSTEM_CONFDIR + "/SQL_DEBUG").exists()) {
|
||||
DriverManager.setLogWriter(new PrintWriter(System.err));
|
||||
}
|
||||
boolean jardirOption = false;
|
||||
String jardir = null;
|
||||
boolean jardirOnly = false;
|
||||
if (args.length > 0) {
|
||||
String firstOption = args[0].substring(0, 2);
|
||||
if (firstOption.equals("-J")) {
|
||||
jardirOption = true;
|
||||
jardir = args[0].substring(2);
|
||||
jardirOnly = false;
|
||||
} else if (firstOption.equals("+J")) {
|
||||
jardirOption = true;
|
||||
jardir = args[0].substring(2);
|
||||
jardirOnly = true;
|
||||
}
|
||||
if (jardirOption) {
|
||||
if (jardir.length() == 0) die("L'option -J doit avoir un argument", null);
|
||||
String[] newArgs = new String[args.length - 1];
|
||||
System.arraycopy(args, 1, newArgs, 0, newArgs.length);
|
||||
args = newArgs;
|
||||
}
|
||||
}
|
||||
boolean shouldUpdateClasspath = false;
|
||||
ArrayList<URL> urls = new ArrayList<URL>();
|
||||
shouldUpdateClasspath |= findJars(new File(USER_CONFDIR), urls);
|
||||
shouldUpdateClasspath |= findJars(new File(SYSTEM_CONFDIR), urls);
|
||||
if (jardirOption) {
|
||||
shouldUpdateClasspath |= findJars(new File(jardir), urls);
|
||||
}
|
||||
if (!jardirOption || !jardirOnly) {
|
||||
shouldUpdateClasspath |= findJars(new File(USER_CONFDIR), urls);
|
||||
shouldUpdateClasspath |= findJars(new File(SYSTEM_CONFDIR), urls);
|
||||
}
|
||||
if (shouldUpdateClasspath) {
|
||||
ClassLoader parentLoader = Thread.currentThread().getContextClassLoader();
|
||||
ClassLoader loader = new URLClassLoader(urls.toArray(new URL[0]), parentLoader);
|
||||
|
|
Loading…
Reference in New Issue