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 | ||||
|  | ||||
							
								
								
									
										21
									
								
								authftp
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								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 | ||||
|         exec lftp "${options[@]}" -e "\ | ||||
| set ssl:verify-certificate $verify_certificate | ||||
| open -u $login,$password ftp://$host/$path" | ||||
|         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}@${my_login}@${host},${password}@${my_password} ftp://$AUTHFTP_PROXY_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} $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() { | ||||
|  | ||||
							
								
								
									
										45
									
								
								sqlcsv
									
									
									
									
									
								
							
							
						
						
									
										45
									
								
								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>(); | ||||
|         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 | ||||
| fi | ||||
|     conf_load "$HOME/etc/ufile.d/*.conf" | ||||
| fi | ||||
| 
 | ||||
| ## 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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user