KosIvantsov

Clear Volatile and Backup Files (no properties)

Jan 31st, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Groovy 2.90 KB | None | 0 0
  1. /* :name=Clear Volatile and Backup Files; without properties :description=
  2.  * @author  Kos Ivantsov
  3.  * @date    2019-01-31
  4.  * @version 0.3
  5.  */
  6.  
  7. import javax.swing.JOptionPane
  8. import org.omegat.util.StaticUtils
  9. import org.omegat.util.StringUtil
  10. import static javax.swing.JOptionPane.*
  11. import static org.omegat.gui.main.ProjectUICommands.projectReload
  12.  
  13. name="Clear Volatile and Backup Files; No Bundle"
  14. description="Removes backups of project_save.tmx file, export TMX files and created target files"
  15. noproject="Please try again after you open a project"
  16. deletemsg="""The contents of target folder\n\
  17. <html><u><i>{0}</i></u>;</html>\n\
  18. all the project's memory backup files\n\
  19. <html><u><i>{1}omegat{2}project_save.tmx.*.bak</i></u></html>;\n\
  20. <html><u><i>{1}omegat{2}project_save.tmx.#oldbased_on_*</i></u></html>;\n\
  21. all the export memory files\n\
  22. <html><u><i>{3}-*.tmx</i></u>;</html>\n\
  23. as well as old copies of writable glossary\n\
  24. <html><u><i>{4}#oldbased_on_*</i></u></html>\n\
  25. will be deleted. Proceed?"""
  26. notdel="Nothing deleted"
  27. done="Files deleted!"
  28.  
  29. resBundle = { k,v ->
  30. try {
  31.         v = res.getString(k)            
  32.     } catch (MissingResourceException e) {
  33.         v
  34.     }
  35. }
  36.  
  37. utils = (StringUtil.getMethods().toString().findAll("format")) ? StringUtil : StaticUtils
  38. title = resBundle("name", name)
  39. String.metaClass.confirm = { ->
  40.         showConfirmDialog null, delegate, title, YES_NO_OPTION
  41. }
  42. String.metaClass.alert = { ->
  43.         showMessageDialog null, delegate, title, INFORMATION_MESSAGE
  44.         false
  45. }
  46.  
  47. prop = project.projectProperties
  48. if ( ! prop ) {
  49.     message = resBundle("noproject", noproject)
  50.     console.clear()
  51.     console.println(message)
  52.     message.alert()
  53.     return
  54. }
  55. dir = delTrg = {
  56.     it.eachDir(dir)
  57.     it.eachFile{ it.delete() }
  58. }
  59. omtfolder = prop.getProjectRoot() + "omegat"
  60. rootfolder = prop.getProjectRoot()
  61. glosfolder =  prop.getGlossaryRoot()
  62. projname = new File(rootfolder).getName()
  63. message = utils.format(resBundle("deletemsg", deletemsg), prop.getTargetRoot(), prop.getProjectRoot(), File.separator, "${prop.getProjectRoot()}$projname${File.separator}$projname", prop.getWriteableGlossary())
  64. if ( message.confirm() == 0 ) {
  65.     delTrg new File(prop.getTargetRoot())
  66.     for(File f: new File(omtfolder).listFiles())
  67.         if(f.getName().startsWith("project_save.tmx") && (f.getName().endsWith(".bak")) || f.getName().contains("#oldbased_on_"))
  68.          f.delete()
  69.     for(File f: new File(rootfolder).listFiles())
  70.         if(f.getName().startsWith(projname) && f.getName().endsWith(".tmx"))
  71.          f.delete()
  72.     for(File f: new File(glosfolder).listFiles())
  73.         if (f.getName().contains("#oldbased_on_"))
  74.         f.delete()
  75.     console.clear()
  76.     console.println(resBundle("name", name) + "\n" + resBundle("done", done))
  77. }else{
  78.     console.clear()
  79.     console.println(resBundle("name", name) + "\n" + resBundle("notdel", notdel))
  80. }
  81. return
Add Comment
Please, Sign In to add comment