Revision: 63023
Updated Code
at April 1, 2013 02:33 by laurenceosx
Updated Code
/*
File : helperSvn.gradle
Author: Laurence Toenjes
Date : 3/31/2013
Example of how to use:
1. Put this file in the same directory as your build.gradle file.
2. Near the very top of your build.gradle source file add this line:
apply from: 'helperSvn.gradle'
3. You can now do svn commands like:
doSvnMain( 'export', 'http://svn.codehaus.org/gmod/gsql/tags/gsql-1.5.0/', 'build/svnExport' );
doSvnMain( 'help' );
... etc. ...
Note: each command line arg you would normally supply to a svn command should be an arg passed to doSvnMain
(since we are not using the OS shell you should probably not have to double quote any of the args).
*/
import org.tmatesoft.svn.cli.SVN;
buildscript {
repositories { mavenCentral() }
dependencies { classpath( 'org.tmatesoft.svnkit:svnkit:1.7.8', 'org.tmatesoft.svnkit:svnkit-cli:1.7.8' ) }
}
project.ext.SVN = SVN; /* for certain scenarios might be useful to share this project var */
def _disableSystemExitCall = {
System.setSecurityManager(
new SecurityManager() {
@Override public void checkPermission(java.security.Permission perm) {}
@Override public void checkExit(int status) { throw new SecurityException(); }
}
);
};
def _enableSystemExitCall = { System.setSecurityManager(null); };
/* for certain scenarios might be useful to share these closures with build */
project.ext.disableSystemExitCall = _disableSystemExitCall;
project.ext.enableSystemExitCall = _enableSystemExitCall;
/* key method/closure - used as: doSvnMain( 'your', 'svn', 'args', 'go', 'here' ); */
project.ext.doSvnMain = { String... aSvnArgs ->
_disableSystemExitCall(); /* stop SVN.main from doing a System.exit call */
try {
SVN.main( aSvnArgs as String[] );
} finally {
_enableSystemExitCall();
}
} ;
Revision: 63022
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at April 1, 2013 02:32 by laurenceosx
Initial Code
/*
File : helperSvn.gradle
Author: Laurence Toenjes
Date : 3/31/2013
Example of how to use:
1. Put this file in the same directory as your build.gradle file.
2. Near the very top of your build.gradle source file add this line:
apply from: 'helperSvn.gradle'
3. You can now do svn commands like:
doSvnMain( 'export', 'http://svn.codehaus.org/gmod/gsql/tags/gsql-1.5.0/', 'build/svnExport' );
doSvnMain( 'help' )
... etc. ...
Note: each command line arg you would normally supply to a svn command should be an arg passed to doSvnMain
(since we are not using the OS shell you should probably not have to double quote any of the args).
*/
import org.tmatesoft.svn.cli.SVN;
buildscript {
repositories { mavenCentral() }
dependencies { classpath( 'org.tmatesoft.svnkit:svnkit:1.7.8', 'org.tmatesoft.svnkit:svnkit-cli:1.7.8' ) }
}
project.ext.SVN = SVN; /* for certain scenarios might be useful to share this project var */
def _disableSystemExitCall = {
System.setSecurityManager(
new SecurityManager() {
@Override public void checkPermission(java.security.Permission perm) {}
@Override public void checkExit(int status) { throw new SecurityException(); }
}
);
};
def _enableSystemExitCall = { System.setSecurityManager(null); };
/* for certain scenarios might be useful to share these closures with build */
project.ext.disableSystemExitCall = _disableSystemExitCall;
project.ext.enableSystemExitCall = _enableSystemExitCall;
/* key method/closure - used as: doSvnMain( 'your', 'svn', 'args', 'go', 'here' ); */
project.ext.doSvnMain = { String... aSvnArgs ->
_disableSystemExitCall(); /* stop SVN.main from doing a System.exit call */
try {
SVN.main( aSvnArgs as String[] );
} finally {
_enableSystemExitCall();
}
} ;
Initial URL
Initial Description
Sample SVN call from gradle: doSvnMain( 'your', 'svn', 'args', 'go', 'here' );
Initial Title
Groovy Gradle - Do SVN Commands without having SVN installed.
Initial Tags
groovy
Initial Language
Groovy