package hudson.plugins.distfork; import hudson.util.DirScanner; import hudson.util.FileVisitor; import java.io.File; import java.io.FileFilter; import java.io.IOException; /** * Directory scanner that cuts off the head directory name. * * So where normally we'd see abc/def/ghi in the archive, this would put the same * file in def/ghi. * * @author Kohsuke Kawaguchi */ class RootCutOffFilter extends DirScanner.Filter { public RootCutOffFilter(FileFilter filter) { super(filter); } @Override public void scan(File dir, final FileVisitor visitor) throws IOException { super.scan(dir,new FileVisitor() { @Override public void visit(File f, String relativePath) throws IOException { int idx = relativePath.indexOf('/'); if (idx<0) return; // ignore the first path component visitor.visit(f,relativePath.substring(idx+1)); } }); } private static final long serialVersionUID = 1L; }