@@ -48,6 +48,7 @@ var daemonCmd = &cobra.Command{
4848 }
4949
5050 log .Printf ("Starting Git daemon on %q" , addr )
51+
5152 return srv .ListenAndServe ()
5253 },
5354}
@@ -62,17 +63,20 @@ var _ transport.Loader = (*dirsLoader)(nil)
6263
6364// NewDirsLoader creates a new dirsLoader with the given directories.
6465func NewDirsLoader (dirs []string , strict , exportAll bool ) * dirsLoader {
65- var loaders []transport.Loader
66- var fss []billy.Filesystem
66+ loaders := make ([]transport.Loader , 0 , len (dirs ))
67+ fss := make ([]billy.Filesystem , 0 , len (dirs ))
68+
6769 for _ , dir := range dirs {
6870 abs , err := filepath .Abs (dir )
6971 if err != nil {
7072 continue
7173 }
74+
7275 fs := osfs .New (abs , osfs .WithBoundOS ())
7376 fss = append (fss , fs )
7477 loaders = append (loaders , transport .NewFilesystemLoader (fs , strict ))
7578 }
79+
7680 return & dirsLoader {loaders : loaders , fss : fss , exportAll : exportAll }
7781}
7882
@@ -87,16 +91,18 @@ func (d *dirsLoader) Load(ep *transport.Endpoint) (storage.Storer, error) {
8791 // repository.
8892 dfs := d .fss [i ]
8993 okFile := filepath .Join (ep .Path , "git-daemon-export-ok" )
94+
9095 stat , err := dfs .Lstat (okFile )
9196 if err != nil || (stat != nil && ! stat .Mode ().IsRegular ()) {
9297 // If the file does not exist or is a directory,
9398 // we skip this repository.
9499 continue
95100 }
96-
97101 }
102+
98103 return storer , nil
99104 }
100105 }
106+
101107 return nil , transport .ErrRepositoryNotFound
102108}
0 commit comments