Texen
  1. Texen
  2. TEXEN-13

Generator.parse fails, if the outputfile points to a directory, that does not exist.

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.0
    • Fix Version/s: 1.1
    • Labels:
      None

      Description

      The Texentask generates the outputdirectory, if it does not exist, but the Generator-Implementation lacks this feature for control templates like the following:

      1. control.vm
        $generator.parse("myTemplate.vm", "subdirectory/myTemplate.out")

      So either allow subclasses of TexenTask to use another Generator (1), or change the implementation of getWriter to allow the Generator to create absent directories(2).

      (1)
      line 486:
      Generator generator = createGenerator();

      protected Generator createGenerator() {
      return Generator.getInstance();
      }

      (2)
      public Writer getWriter(final String path, final String encoding) throws Exception {
      final File f = new File(path).getParentFile();
      if (!f.exists())

      { f.mkdirs(); }

      ..
      }

        Activity

        Sebastian Zarnekow created issue -
        Sebastian Zarnekow made changes -
        Field Original Value New Value
        Description The Texentask generates the outputdirectory, if it does not exist, but the Generator-Implementation lacks this feature for control templates like the following:

        # control.vm
        $generator.parse("myTemplate.vm", "subdirectory/myTemplate.out")

        So either allow subclasses of TexenTask to use another Generator (1), or change the implementation of getWriter to allow the Generator to create absent (2).

        (1)
        line 486:
        Generator generator = createGenerator();

        protected Generator createGenerator() {
          return Generator.getInstance();
        }

        (2)
        public Writer getWriter(final String path, final String encoding) throws Exception {
          final File f = new File(path).getParentFile();
          if (!f.exists()) {
            f.mkdirs();
          }
          ..
        }
        The Texentask generates the outputdirectory, if it does not exist, but the Generator-Implementation lacks this feature for control templates like the following:

        # control.vm
        $generator.parse("myTemplate.vm", "subdirectory/myTemplate.out")

        So either allow subclasses of TexenTask to use another Generator (1), or change the implementation of getWriter to allow the Generator to create absent directories(2).

        (1)
        line 486:
        Generator generator = createGenerator();

        protected Generator createGenerator() {
          return Generator.getInstance();
        }

        (2)
        public Writer getWriter(final String path, final String encoding) throws Exception {
          final File f = new File(path).getParentFile();
          if (!f.exists()) {
            f.mkdirs();
          }
          ..
        }
        Will Glass-Husain made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Will Glass-Husain made changes -
        Fix Version/s 1.1 [ 12312817 ]
        Affects Version/s 1.0 [ 12312816 ]
        Sebastian Zarnekow made changes -
        Attachment GeneratorNotReallyASingleton.patch [ 12367462 ]
        Will Glass-Husain made changes -
        Status Resolved [ 5 ] Reopened [ 4 ]
        Resolution Fixed [ 1 ]
        Will Glass-Husain made changes -
        Resolution Fixed [ 1 ]
        Status Reopened [ 4 ] Resolved [ 5 ]

          People

          • Assignee:
            Unassigned
            Reporter:
            Sebastian Zarnekow
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development