mirror of
https://github.com/moparisthebest/SickRage
synced 2024-11-13 21:05:11 -05:00
104 lines
2.4 KiB
Ruby
104 lines
2.4 KiB
Ruby
|
require 'fileutils'
|
||
|
|
||
|
task :default => [:clean]
|
||
|
|
||
|
task :clean do
|
||
|
[".", "tests"].each do |cd|
|
||
|
puts "Cleaning directory #{cd}"
|
||
|
Dir.new(cd).each do |t|
|
||
|
if t =~ /.*\.pyc$/
|
||
|
puts "Removing #{File.join(cd, t)}"
|
||
|
File.delete(File.join(cd, t))
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
desc "Upversion files"
|
||
|
task :upversion do
|
||
|
puts "Upversioning"
|
||
|
|
||
|
Dir.glob("*.py").each do |filename|
|
||
|
f = File.new(filename, File::RDWR)
|
||
|
contents = f.read()
|
||
|
|
||
|
contents.gsub!(/__version__ = ".+?"/){|m|
|
||
|
cur_version = m.scan(/\d+\.\d+/)[0].to_f
|
||
|
new_version = cur_version + 0.1
|
||
|
|
||
|
puts "Current version: #{cur_version}"
|
||
|
puts "New version: #{new_version}"
|
||
|
|
||
|
new_line = "__version__ = \"#{new_version}\""
|
||
|
|
||
|
puts "Old line: #{m}"
|
||
|
puts "New line: #{new_line}"
|
||
|
|
||
|
m = new_line
|
||
|
}
|
||
|
|
||
|
puts contents[0]
|
||
|
|
||
|
f.truncate(0) # empty the existing file
|
||
|
f.seek(0)
|
||
|
f.write(contents.to_s) # write modified file
|
||
|
f.close()
|
||
|
end
|
||
|
end
|
||
|
|
||
|
desc "Upload current version to PyPi"
|
||
|
task :topypi => :test do
|
||
|
cur_file = File.open("tvdb_api.py").read()
|
||
|
tvdb_api_version = cur_file.scan(/__version__ = "(.*)"/)
|
||
|
tvdb_api_version = tvdb_api_version[0][0].to_f
|
||
|
|
||
|
puts "Build sdist and send tvdb_api v#{tvdb_api_version} to PyPi?"
|
||
|
if $stdin.gets.chomp == "y"
|
||
|
puts "Sending source-dist (sdist) to PyPi"
|
||
|
|
||
|
if system("python setup.py sdist register upload")
|
||
|
puts "tvdb_api uploaded!"
|
||
|
end
|
||
|
|
||
|
else
|
||
|
puts "Cancelled"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
desc "Profile by running unittests"
|
||
|
task :profile do
|
||
|
cd "tests"
|
||
|
puts "Profiling.."
|
||
|
`python -m cProfile -o prof_runtest.prof runtests.py`
|
||
|
puts "Converting prof to dot"
|
||
|
`python gprof2dot.py -o prof_runtest.dot -f pstats prof_runtest.prof`
|
||
|
puts "Generating graph"
|
||
|
`~/Applications/dev/graphviz.app/Contents/macOS/dot -Tpng -o profile.png prof_runtest.dot -Gbgcolor=black`
|
||
|
puts "Cleanup"
|
||
|
rm "prof_runtest.dot"
|
||
|
rm "prof_runtest.prof"
|
||
|
end
|
||
|
|
||
|
task :test do
|
||
|
puts "Nosetest'ing"
|
||
|
if not system("nosetests -v --with-doctest")
|
||
|
raise "Test failed!"
|
||
|
end
|
||
|
|
||
|
puts "Doctesting *.py (excluding setup.py)"
|
||
|
Dir.glob("*.py").select{|e| ! e.match(/setup.py/)}.each do |filename|
|
||
|
if filename =~ /^setup\.py/
|
||
|
skip
|
||
|
end
|
||
|
puts "Doctesting #{filename}"
|
||
|
if not system("python", "-m", "doctest", filename)
|
||
|
raise "Failed doctest"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
puts "Doctesting readme.md"
|
||
|
if not system("python", "-m", "doctest", "readme.md")
|
||
|
raise "Doctest"
|
||
|
end
|
||
|
end
|