@ -44,6 +44,7 @@
package org.eclipse.jgit.pgm ;
package org.eclipse.jgit.pgm ;
import java.io.File ;
import java.io.File ;
import java.io.IOException ;
import java.net.InetSocketAddress ;
import java.net.InetSocketAddress ;
import java.net.URISyntaxException ;
import java.net.URISyntaxException ;
import java.text.MessageFormat ;
import java.text.MessageFormat ;
@ -51,12 +52,14 @@ import java.util.ArrayList;
import java.util.List ;
import java.util.List ;
import java.util.concurrent.Executors ;
import java.util.concurrent.Executors ;
import org.eclipse.jgit.errors.ConfigInvalidException ;
import org.eclipse.jgit.internal.ketch.KetchLeader ;
import org.eclipse.jgit.internal.ketch.KetchLeader ;
import org.eclipse.jgit.internal.ketch.KetchLeaderCache ;
import org.eclipse.jgit.internal.ketch.KetchLeaderCache ;
import org.eclipse.jgit.internal.ketch.KetchPreReceive ;
import org.eclipse.jgit.internal.ketch.KetchPreReceive ;
import org.eclipse.jgit.internal.ketch.KetchSystem ;
import org.eclipse.jgit.internal.ketch.KetchSystem ;
import org.eclipse.jgit.internal.ketch.KetchText ;
import org.eclipse.jgit.internal.ketch.KetchText ;
import org.eclipse.jgit.lib.Repository ;
import org.eclipse.jgit.lib.Repository ;
import org.eclipse.jgit.lib.StoredConfig ;
import org.eclipse.jgit.pgm.internal.CLIText ;
import org.eclipse.jgit.pgm.internal.CLIText ;
import org.eclipse.jgit.storage.file.FileBasedConfig ;
import org.eclipse.jgit.storage.file.FileBasedConfig ;
import org.eclipse.jgit.storage.file.WindowCacheConfig ;
import org.eclipse.jgit.storage.file.WindowCacheConfig ;
@ -69,6 +72,7 @@ import org.eclipse.jgit.transport.resolver.ReceivePackFactory;
import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException ;
import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException ;
import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException ;
import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException ;
import org.eclipse.jgit.util.FS ;
import org.eclipse.jgit.util.FS ;
import org.eclipse.jgit.util.SystemReader ;
import org.kohsuke.args4j.Argument ;
import org.kohsuke.args4j.Argument ;
import org.kohsuke.args4j.Option ;
import org.kohsuke.args4j.Option ;
@ -121,19 +125,20 @@ class Daemon extends TextBuiltin {
@Override
@Override
protected void run ( ) throws Exception {
protected void run ( ) throws Exception {
PackConfig packConfig = new PackConfig ( ) ;
PackConfig packConfig = new PackConfig ( ) ;
StoredConfig cfg ;
if ( configFile ! = null ) {
if ( configFile = = null ) {
cfg = getUserConfig ( ) ;
} else {
if ( ! configFile . exists ( ) ) {
if ( ! configFile . exists ( ) ) {
throw die ( MessageFormat . format (
throw die ( MessageFormat . format (
CLIText . get ( ) . configFileNotFound , //
CLIText . get ( ) . configFileNotFound , //
configFile . getAbsolutePath ( ) ) ) ;
configFile . getAbsolutePath ( ) ) ) ;
}
}
cfg = new FileBasedConfig ( configFile , FS . DETECTED ) ;
FileBasedConfig cfg = new FileBasedConfig ( configFile , FS . DETECTED ) ;
}
cfg . load ( ) ;
cfg . load ( ) ;
new WindowCacheConfig ( ) . fromConfig ( cfg ) . install ( ) ;
new WindowCacheConfig ( ) . fromConfig ( cfg ) . install ( ) ;
packConfig . fromConfig ( cfg ) ;
packConfig . fromConfig ( cfg ) ;
}
int threads = packConfig . getThreads ( ) ;
int threads = packConfig . getThreads ( ) ;
if ( threads < = 0 )
if ( threads < = 0 )
@ -173,6 +178,16 @@ class Daemon extends TextBuiltin {
outw . println ( MessageFormat . format ( CLIText . get ( ) . listeningOn , d . getAddress ( ) ) ) ;
outw . println ( MessageFormat . format ( CLIText . get ( ) . listeningOn , d . getAddress ( ) ) ) ;
}
}
private StoredConfig getUserConfig ( ) throws IOException {
StoredConfig userConfig = null ;
try {
userConfig = SystemReader . getInstance ( ) . getUserConfig ( ) ;
} catch ( ConfigInvalidException e ) {
throw die ( e . getMessage ( ) ) ;
}
return userConfig ;
}
private static DaemonService service (
private static DaemonService service (
final org . eclipse . jgit . transport . Daemon d ,
final org . eclipse . jgit . transport . Daemon d ,
final String n ) {
final String n ) {