in clearcase-agent/src/jetbrains/buildServer/vcs/clearcase/agent/LinkBasedSourceProvider.java [150:176]
File ln(final CCSnapshotView ccview, final File absoluteLinkSource, final File linkTargetOwnerDirectory) throws CCException {
try {
if (!linkTargetOwnerDirectory.exists()) {
linkTargetOwnerDirectory.mkdirs();
}
final File linkTarget = new File(linkTargetOwnerDirectory.getAbsolutePath(), absoluteLinkSource.getName());
final String command;
if (isWindows()) {
if (absoluteLinkSource.isDirectory()) {
command = String.format("cmd /c mklink /D %s %s", linkTarget.getAbsolutePath(), absoluteLinkSource.getAbsolutePath());
} else {
command = String.format("cmd /c mklink %s %s", linkTarget.getAbsolutePath(), absoluteLinkSource.getAbsolutePath());
}
} else {
if (absoluteLinkSource.isDirectory()) {
command = String.format("ln -s %s %s", absoluteLinkSource.getAbsolutePath(), linkTarget.getAbsolutePath());
} else {
command = String.format("ln -s %s %s", absoluteLinkSource.getAbsolutePath(), linkTarget.getAbsolutePath());
}
}
Util.execAndWait(command);
store(ccview, linkTarget);
return linkTarget;
} catch (Exception e) {
throw new CCException(e);
}
}