1 package org.apache.maven.plugin.clean; 2 3 /* 4 * Licensed to the Apache Software Foundation (ASF) under one 5 * or more contributor license agreements. See the NOTICE file 6 * distributed with this work for additional information 7 * regarding copyright ownership. The ASF licenses this file 8 * to you under the Apache License, Version 2.0 (the 9 * "License"); you may not use this file except in compliance 10 * with the License. You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, 15 * software distributed under the License is distributed on an 16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17 * KIND, either express or implied. See the License for the 18 * specific language governing permissions and limitations 19 * under the License. 20 */ 21 22 import java.io.File; 23 24 import org.codehaus.plexus.util.cli.CommandLineUtils; 25 import org.codehaus.plexus.util.cli.Commandline; 26 import org.codehaus.plexus.util.cli.StreamConsumer; 27 28 /** 29 * Testing helpers for the IT scripts. 30 * 31 * @author Benjamin Bentmann 32 */ 33 public class Utils 34 { 35 36 /** 37 * Creates a symbolic link. 38 * 39 * @param target The target (file or directory) of the link, must not be <code>null</code>. 40 * @param link The path to the link, must not be <code>null</code>. 41 * @return <code>true</code> if the symlink could be created, <code>false</code> otherwise. 42 */ 43 public static boolean createSymlink( File target, File link ) 44 { 45 try 46 { 47 Commandline cli = new Commandline(); 48 cli.setExecutable( "ln" ); 49 cli.createArg().setValue( "-s" ); 50 cli.createArg().setFile( target ); 51 cli.createArg().setFile( link ); 52 int code = CommandLineUtils.executeCommandLine( cli, new StreamConsumer() 53 { 54 public void consumeLine( String line ) 55 { 56 System.out.println( line ); 57 } 58 }, new StreamConsumer() 59 { 60 public void consumeLine( String line ) 61 { 62 System.err.println( line ); 63 } 64 } ); 65 return 0 == code; 66 } 67 catch ( Exception e ) 68 { 69 return false; 70 } 71 } 72 73 }