You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

InfoPacksServlet.java 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*
  2. * Copyright (C) 2009-2010, Google Inc. and others
  3. *
  4. * This program and the accompanying materials are made available under the
  5. * terms of the Eclipse Distribution License v. 1.0 which is available at
  6. * https://www.eclipse.org/org/documents/edl-v10.php.
  7. *
  8. * SPDX-License-Identifier: BSD-3-Clause
  9. */
  10. package org.eclipse.jgit.http.server;
  11. import static org.eclipse.jgit.http.server.ServletUtils.getRepository;
  12. import static org.eclipse.jgit.http.server.ServletUtils.sendPlainText;
  13. import java.io.IOException;
  14. import javax.servlet.http.HttpServlet;
  15. import javax.servlet.http.HttpServletRequest;
  16. import javax.servlet.http.HttpServletResponse;
  17. import org.eclipse.jgit.internal.storage.file.ObjectDirectory;
  18. import org.eclipse.jgit.internal.storage.file.PackFile;
  19. import org.eclipse.jgit.lib.ObjectDatabase;
  20. /** Sends the current list of pack files, sorted most recent first. */
  21. class InfoPacksServlet extends HttpServlet {
  22. private static final long serialVersionUID = 1L;
  23. /** {@inheritDoc} */
  24. @Override
  25. public void doGet(final HttpServletRequest req,
  26. final HttpServletResponse rsp) throws IOException {
  27. sendPlainText(packList(req), req, rsp);
  28. }
  29. private static String packList(HttpServletRequest req) {
  30. final StringBuilder out = new StringBuilder();
  31. final ObjectDatabase db = getRepository(req).getObjectDatabase();
  32. if (db instanceof ObjectDirectory) {
  33. for (PackFile pack : ((ObjectDirectory) db).getPacks()) {
  34. out.append("P ");
  35. out.append(pack.getPackFile().getName());
  36. out.append('\n');
  37. }
  38. }
  39. out.append('\n');
  40. return out.toString();
  41. }
  42. }