docs: public static void tar(@NotNull File source, @NotNull File dest) throws IOException {
          if (!source.exists()) {
              throw new IllegalArgumentException("No source file or folder exists: " + source.getAbsolutePath());
          }
          if (dest.exists()) {
              throw new IllegalArgumentException("Destination refers to existing file or folder: " + dest.getAbsolutePath());
          }
  
          try (TarArchiveOutputStream tarOut = new TarArchiveOutputStream(new GZIPOutputStream(
                  new BufferedOutputStream(new FileOutputStream(dest)), 0x1000))) {
              doTar("", source, tarOut);
          } catch (IOException e) {
              IOUtil.deleteFile(dest); // operation filed, let's remove the destination archive
              throw e;
          }
      }