Intégration de la branche release-7.4.0
This commit is contained in:
commit
9d8787afae
|
@ -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
|
||||
|
|
|
@ -1 +1 @@
|
|||
7.3.0
|
||||
7.4.0
|
||||
|
|
17
authftp
17
authftp
|
@ -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
|
||||
|
|
|
@ -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
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);
|
||||
|
|
16
ufile
16
ufile
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue