Intégration de la branche release-7.4.0

This commit is contained in:
Jephté Clain 2017-12-20 19:01:55 +04:00
commit 9d8787afae
6 changed files with 91 additions and 13 deletions

View File

@ -1,3 +1,11 @@
## Version 7.4.0 du 20/12/2017-19:01
* `48e4359` sqlcsv: possibilité de spécifier le chemin de chargement des drivers jdbc
* `a7e6228` ufile: par défaut -c ne charge que le fichier spécifié
* `0b59583` support de quelques combinaisons de diacritiques
* `4f520db` authftp: support préliminaire de --sftp
* `4f11cc4` ufile: possibilité d'écraser les fichiers sans confirmation
## Version 7.3.0 du 19/10/2017-12:12
* `72d7d15` maj version ulib

View File

@ -1 +1 @@
7.3.0
7.4.0

17
authftp
View File

@ -31,6 +31,8 @@ OPTIONS
--verify-certificate
Avec la connexion --tls, forcer la vérification du certificat, qui est
désactivée par défaut.
--sftp
Indiquer que la connexion se fait via SFTP. Implique --lftp --noproxy
note: A cause d'une limitation de lftp, ce n'est pas possible de se connecter
automatiquement avec lftp si le mot de passe contient une virgule. A cause de la
@ -47,6 +49,7 @@ lftp=
options=()
tls=
verify_certificate=no
sftp=
parse_opts "${PRETTYOPTS[@]}" \
--help '$exit_with display_help' \
-p,--proxy noproxy= \
@ -55,6 +58,7 @@ parse_opts "${PRETTYOPTS[@]}" \
-o:,--option: options \
--tls tls=1 \
--verify-certificate verify_certificate=yes \
--sftp sftp=1 \
@ args -- "$@" && set -- "${args[@]}" || die "$args"
[ -n "$noproxy" -o -n "$AUTHFTP_PROXY_HOST" ] || die "AUTHFTP_PROXY_HOST doit être défini"
@ -67,17 +71,24 @@ read_value -i "Entrez l'identifiant de connexion" login "$2"
read_value -i "Entrez le mot de passe" password "$3"
read_value -i "Entrez le chemin" path "$4" N
[ -n "$tls" ] && lftp=1
[ -n "$tls" -o -n "$sftp" ] && lftp=1
[ -n "$sftp" ] && noproxy=1
if [ -n "$lftp" ]; then
if [ -n "$noproxy" ]; then
if [ -n "$sftp" ]; then
url="sftp://$host/$path"
else
url="ftp://$host/$path"
fi
exec lftp "${options[@]}" -e "\
set ssl:verify-certificate $verify_certificate
open -u $login,$password ftp://$host/$path"
open -u $login,$password $url"
else
url="ftp://$AUTHFTP_PROXY_HOST/$path"
exec lftp "${options[@]}" -e "\
set ssl:verify-certificate $verify_certificate
open -u ${login}@${my_login}@${host},${password}@${my_password} ftp://$AUTHFTP_PROXY_HOST/$path"
open -u ${login}@${my_login}@${host},${password}@${my_password} $url"
fi
else
if [ -n "$noproxy" ]; then

View File

@ -1229,6 +1229,18 @@ s/[œ]/oe/g
s/[Œ]/OE/g
s/[æ]/ae/g
s/[Æ]/AE/g
s/a\xCC\x80/à/g
s/e\xCC\x81/é/g; s/e\xCC\x80/è/g; s/e\xCC\x82/ê/g; s/e\xCC\x88/ë/g
s/i\xCC\x88/ï/g; s/i\xCC\x82/î/g
s/o\xCC\x82/ô/g; s/o\xCC\x88/ö/g
s/u\xCC\x88/ü/g; s/u\xCC\x82/û/g
s/c\xCC\xA7/ç/g
s/A\xCC\x80/À/g
s/E\xCC\x81/É/g; s/E\xCC\x80/È/g; s/E\xCC\x82/Ê/g; s/E\xCC\x88/Ë/g
s/I\xCC\x88/Ï/g; s/I\xCC\x82/Î/g
s/O\xCC\x82/Ô/g; s/O\xCC\x88/Ö/g
s/U\xCC\x88/Ü/g; s/U\xCC\x82/Û/g
s/C\xCC\xA7/Ç/g
'
}
function _noaccents() {

49
sqlcsv
View File

@ -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);

16
ufile
View File

@ -46,7 +46,10 @@ USAGE
OPTIONS
-c, --config CONFIG
Utiliser le fichier de configuration spécifié au lieu de la valeur par
défaut ~/etc/default/ufile
défaut ~/etc/default/ufile et ~/etc/ufile.d/*.conf
-C, --other-configs
Charger les fichiers ~/etc/ufile.d/*.conf en plus du fichier spécifié
avec --config. Cette option est ignorée si --config n'est pas utilisé.
--file
Classer les fichiers spécifiés. C'est l'action par défaut
--force-cp
@ -61,6 +64,9 @@ OPTIONS
Toujours utiliser scp pour une copie distante. Par défaut s'il est
déterminé que l'hôte distant est en réalité l'hôte courant, alors la
copie est effectuée directement.
-f, --force
Si le fichier destination existe, alors l'écraser sans confirmation.
Cette option est ignorée pour un classement distant.
-r, --recursive
Classer récursivement tous les fichiers d'un répertoire. Sans cette
option, il n'est pas autorisé de fournir un répertoire comme argument.
@ -120,10 +126,12 @@ function __set_dest() {
args=(%
--help '$exit_with display_help'
-c:,--config: config=
-C,--other-configs other_configs=1
--file action=file
--force-cp force_cp=1
-S:,--ssh: SSH=
--force-scp force_scp=1
-f,--force force=1
-r,--recursive recursive=1
-n,--fake fake=1
-l,--list action=list
@ -145,10 +153,11 @@ if [ -n "$config" ]; then
if [ -f "$config" ]; then
source "$config" || die "$config: erreur lors de la lecture du fichier"
fi
[ -n "$other_configs" ] && conf_load "$HOME/etc/ufile.d/*.conf"
else
set_defaults ufile
conf_load "$HOME/etc/ufile.d/*.conf"
fi
conf_load "$HOME/etc/ufile.d/*.conf"
## actions particulières
@ -256,6 +265,7 @@ for file in "${files[@]}"; do
i=1
mvi=${#dests[*]}
[ -z "$force" ] && mvint=-i || mvint=
for dest in "${dests[@]}"; do
if [[ "$dest" == *:* ]]; then
[ "$interaction" == --DEFAULT-- ] && int= || int="$interaction"
@ -280,7 +290,7 @@ for file in "${files[@]}"; do
mvdesc="de la copie"
mvcmd=cp
fi
docmd "$mvcmd" -i "$file" "$dest" || die "problème lors $mvdesc du fichier"
docmd "$mvcmd" $mvint "$file" "$dest" || die "problème lors $mvdesc du fichier"
fi
i=$(($i + 1))
done