remove_unused.gradle 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. task removeUnusedFiles {
  2. doLast {
  3. def report = file('lint-report.txt')
  4. def logFile = file('remove-log.txt')
  5. logFile.write("")
  6. if (!report.exists()) {
  7. logFile.append("No report found at " + report.absolutePath + "\n")
  8. return
  9. }
  10. int deletedCount = 0
  11. long deletedSize = 0L
  12. report.eachLine { line ->
  13. def matcher = line =~ /^(.*?):\s*(?:\d+:\s*)?Warning: The resource (R\.(drawable|layout|anim|raw|color)\.[a-zA-Z0-9_]+) appears to be unused/
  14. if (matcher.find()) {
  15. def filePath = matcher.group(1)
  16. if (!filePath.contains("\\values\\") && !filePath.contains("/values/")) {
  17. def f = file(filePath)
  18. if (f.exists()) {
  19. deletedSize += f.length()
  20. if (f.delete()) {
  21. deletedCount++
  22. logFile.append("Deleted: " + f.name + "\n")
  23. } else {
  24. logFile.append("Failed to delete: " + f.name + "\n")
  25. }
  26. } else {
  27. logFile.append("File not found: " + filePath + "\n")
  28. }
  29. }
  30. }
  31. }
  32. logFile.append("Total files deleted: " + deletedCount + "\n")
  33. logFile.append("Total space saved: " + (deletedSize / 1024) + " KB\n")
  34. }
  35. }