Mercurial > jhg
comparison cmdline/org/tmatesoft/hg/console/Manifest.java @ 143:b9700740553a
Command line tools parse and respect most of command-line arguments
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Thu, 17 Feb 2011 22:16:25 +0100 |
| parents | 4a948ec83980 |
| children | 4c3b9f679412 |
comparison
equal
deleted
inserted
replaced
| 142:37a34044e6bd | 143:b9700740553a |
|---|---|
| 17 package org.tmatesoft.hg.console; | 17 package org.tmatesoft.hg.console; |
| 18 | 18 |
| 19 import static org.tmatesoft.hg.repo.HgRepository.TIP; | 19 import static org.tmatesoft.hg.repo.HgRepository.TIP; |
| 20 | 20 |
| 21 import org.tmatesoft.hg.core.HgLogCommand.FileRevision; | 21 import org.tmatesoft.hg.core.HgLogCommand.FileRevision; |
| 22 import org.tmatesoft.hg.core.HgManifestCommand; | |
| 22 import org.tmatesoft.hg.core.Nodeid; | 23 import org.tmatesoft.hg.core.Nodeid; |
| 23 import org.tmatesoft.hg.core.HgManifestCommand; | |
| 24 import org.tmatesoft.hg.repo.HgManifest; | |
| 25 import org.tmatesoft.hg.repo.HgRepository; | 24 import org.tmatesoft.hg.repo.HgRepository; |
| 26 import org.tmatesoft.hg.util.Path; | 25 import org.tmatesoft.hg.util.Path; |
| 27 | 26 |
| 28 | 27 |
| 29 /** | 28 /** |
| 38 HgRepository hgRepo = cmdLineOpts.findRepository(); | 37 HgRepository hgRepo = cmdLineOpts.findRepository(); |
| 39 if (hgRepo.isInvalid()) { | 38 if (hgRepo.isInvalid()) { |
| 40 System.err.printf("Can't find repository in: %s\n", hgRepo.getLocation()); | 39 System.err.printf("Can't find repository in: %s\n", hgRepo.getLocation()); |
| 41 return; | 40 return; |
| 42 } | 41 } |
| 43 System.out.println(hgRepo.getLocation()); | 42 final boolean debug = cmdLineOpts.getBoolean("--debug"); |
| 44 hgRepo.getManifest().walk(0, TIP, new Dump()); | 43 final boolean verbose = cmdLineOpts.getBoolean("-v", "--verbose"); |
| 45 // | 44 HgManifestCommand.Handler h = new HgManifestCommand.Handler() { |
| 46 new HgManifestCommand(hgRepo).dirs(true).walk(new HgManifestCommand.Handler() { | |
| 47 | 45 |
| 48 public void begin(Nodeid manifestRevision) { | 46 public void begin(Nodeid manifestRevision) { |
| 49 System.out.println(">> " + manifestRevision); | |
| 50 } | 47 } |
| 51 public void dir(Path p) { | 48 public void dir(Path p) { |
| 52 System.out.println(p); | |
| 53 } | 49 } |
| 54 public void file(FileRevision fileRevision) { | 50 public void file(FileRevision fileRevision) { |
| 55 System.out.print(fileRevision.getRevision());; | 51 if (debug) { |
| 56 System.out.print(" "); | 52 System.out.print(fileRevision.getRevision());; |
| 53 } | |
| 54 if (debug || verbose) { | |
| 55 System.out.print(" 644"); // FIXME real flags! | |
| 56 System.out.print(" "); | |
| 57 } | |
| 57 System.out.println(fileRevision.getPath()); | 58 System.out.println(fileRevision.getPath()); |
| 58 } | 59 } |
| 59 | 60 |
| 60 public void end(Nodeid manifestRevision) { | 61 public void end(Nodeid manifestRevision) { |
| 61 System.out.println(); | |
| 62 } | 62 } |
| 63 }); | 63 }; |
| 64 } | 64 int rev = cmdLineOpts.getSingleInt(TIP, "-r", "--rev"); |
| 65 | 65 new HgManifestCommand(hgRepo).dirs(false).revision(rev).execute(h); |
| 66 public static final class Dump implements HgManifest.Inspector { | |
| 67 public boolean begin(int revision, Nodeid nid) { | |
| 68 System.out.printf("%d : %s\n", revision, nid); | |
| 69 return true; | |
| 70 } | |
| 71 | |
| 72 public boolean next(Nodeid nid, String fname, String flags) { | |
| 73 System.out.println(nid + "\t" + fname + "\t\t" + flags); | |
| 74 return true; | |
| 75 } | |
| 76 | |
| 77 public boolean end(int revision) { | |
| 78 System.out.println(); | |
| 79 return true; | |
| 80 } | |
| 81 } | 66 } |
| 82 } | 67 } |
