1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * See LICENSE.txt included in this distribution for the specific 9 * language governing permissions and limitations under the License. 10 * 11 * When distributing Covered Code, include this CDDL HEADER in each 12 * file and include the License file at LICENSE.txt. 13 * If applicable, add the following below this CDDL HEADER, with the 14 * fields enclosed by brackets "[]" replaced with your own identifying 15 * information: Portions Copyright [yyyy] [name of copyright owner] 16 * 17 * CDDL HEADER END 18 */ 19 20 /* 21 * Copyright (c) 2008, 2022, Oracle and/or its affiliates. All rights reserved. 22 */ 23 package org.opengrok.indexer.history; 24 25 import java.io.File; 26 import java.io.IOException; 27 import java.io.InputStream; 28 import java.util.ArrayList; 29 import org.opengrok.indexer.util.Executor; 30 31 /** 32 * Used by both {@link RazorRepository} and {@link SCCSRepository} to retrieve revisions of a file. 33 */ 34 public final class SCCSget { 35 getRevision(String command, File file, String revision)36 public static InputStream getRevision(String command, File file, String revision) throws IOException { 37 InputStream ret = null; 38 ArrayList<String> argv = new ArrayList<>(); 39 argv.add(command); 40 argv.add("get"); 41 argv.add("-p"); 42 if (revision != null) { 43 argv.add("-r" + revision); 44 } 45 argv.add(file.getCanonicalPath()); 46 47 Executor executor = new Executor(argv); 48 if (executor.exec() == 0) { 49 ret = executor.getOutputStream(); 50 } 51 52 return ret; 53 } 54 SCCSget()55 private SCCSget() { 56 } 57 } 58