#! /usr/bin/ruby

# crlf.rb
# 22:02 24/11/2002
#
# Replace \r\n by \n

# si l'utilisateur précise un autre répertoire, on y va
begin
  Dir::chdir(ARGV.shift) if ARGV.length == 1
rescue
  print("Unknown directory, please retry !\n")
  exit(1)
end

# message de début
print("Processing %s...\n" % Dir::pwd)

# pour chaque fichier et sous-fichier
Dir["**/*"].each do |file|

  # on saute les sous-répertoires
  if not File::directory?(file)

    # on lit le fichier
    f = open(file)
    data = f.read

    # si on trouve le code terminateur \0 il s'agit d'un fichier binaire
    # on ne modifie pas ce fichier
    if data.include?("\0")
      printf("Skipped    %s as a binary file...\n", file)
      next
    end

    # on applique notre transformation
    data = data.gsub(/\r\n/, "\n")

    # et on sauvegarde si nécessaire !
    if $&
      printf("Processing %s...\n", file)
      f.reopen(file, "wb")
      f.write(data)
      f.close
    end
  end

end

# end of crlf.rb
