All pastes #772394 Raw Edit

Mine

public ruby v1 · immutable
·published 2007-11-13 19:59 UTC
rendered paste body
#!/usr/bin/rubyfiles = []skip = trueIO.popen("git-diff-index -z -M --cached HEAD").each("\0") { |line|  if not skip    files.push(line.strip())  end  skip = !skip}$ok = truedef error(msg)  $stderr.puts "Error: " + msg  $ok = falseenddef do_initialize_h(files)  if files.include?("libswfdec/swfdec_initialize.as") ||    files.include?("libswfdec/swfdec_initialize.h") ||    files.include?("libswfdec/swfdec_as_initialize.as") ||    files.include?("libswfdec/swfdec_as_initialize.h")    if not system("gcc -Wall -Werror `pkg-config --libs --cflags libming glib-2.0` libswfdec/compiler.c -o libswfdec/compiler")      error("Couldn't compile libswfdec/compiler")      return    end    if files.include?("libswfdec/swfdec_initialize.as") ||      files.include?("libswfdec/swfdec_initialize.h")      if not system("libswfdec/compiler libswfdec/swfdec_initialize.as 2> /dev/null | diff libswfdec/swfdec_initialize.h - > /dev/null")	error("libswfdec/swfdec_initialize.h is not in sync with swfdec_initialize.as");      end    end    if files.include?("libswfdec/swfdec_as_initialize.as") ||      files.include?("libswfdec/swfdec_as_initialize.h")      if not system("libswfdec/compiler libswfdec/swfdec_as_initialize.as 2> /dev/null | diff libswfdec/swfdec_as_initialize.h - > /dev/null")	error("libswfdec/swfdec_as_initialize.h is not in sync with swfdec_as_initialize.as");      end    end  endenddef do_test_trace_makefile_am(files)  found = false  files.each { |file|    if file =~ /^test\/trace/      found = true      break    end  }  if not found then return end  ignore = [".gitignore", "Makefile.am", "trace.c", "swfdec_interaction.c",    "swfdec_interaction.h"]  files_directory = []  files_makefile = []  dist = false  IO.popen("git-ls-files -z test/trace").each("\0") { |line|    line.strip!()    if not ignore.include?(line["test/trace/".length..-1])      files_directory.push(line)    end  }  File.open("test/trace/Makefile.am").each { |line|    if dist == false      if line =~ /^EXTRA_DIST/	dist = true      end    else      if line =~ /\\\s*$/	line.gsub!(/\\\s*$/, "")      else	dist = false      end      files_makefile.push("test/trace/" + line.strip())    end  }  files_directory.each { |file|    if files.include?("test/trace/Makefile.am") || files.include?(file)      if not files_makefile.include?(file)	error("File " + file + " is not mentioned in Makefile.am")      end    end    if files.include?(file)      if file =~ /\.swf$/	if not files_directory.include?(file+".trace")	  error("File " + file + " doesn't have corresponding .trace file")	end      elsif file =~ /\.swf\.trace$/	if not files_directory.include?(file[0..-7])	  error("File " + file + " doesn't have corresponding .swf file")	end      end    end  }  # FIXME only check the changed parts of Makefile.am  if files.include?("test/trace/Makefile.am")    files_makefile.each { |file|      if not files_directory.include?(file)	error("test/trace/Makefile.am mentions non-existing file " + file)      end    }  endenddo_initialize_h(files)do_test_trace_makefile_am(files)if not $ok  exit 1else  exit 0end