language_merge.go (1129B)
1 // Copyright 2022 The Hugo Authors. All rights reserved.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 // http://www.apache.org/licenses/LICENSE-2.0
7 //
8 // Unless required by applicable law or agreed to in writing, software
9 // distributed under the License is distributed on an "AS IS" BASIS,
10 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 // See the License for the specific language governing permissions and
12 // limitations under the License.
13
14 package hugofs
15
16 import (
17 "os"
18 )
19
20 // LanguageDirsMerger implements the overlayfs.DirsMerger func, which is used
21 // to merge two directories.
22 var LanguageDirsMerger = func(lofi, bofi []os.FileInfo) []os.FileInfo {
23 for _, fi1 := range bofi {
24 fim1 := fi1.(FileMetaInfo)
25 var found bool
26 for _, fi2 := range lofi {
27 fim2 := fi2.(FileMetaInfo)
28 if fi1.Name() == fi2.Name() && fim1.Meta().Lang == fim2.Meta().Lang {
29 found = true
30 break
31 }
32 }
33 if !found {
34 lofi = append(lofi, fi1)
35 }
36 }
37
38 return lofi
39 }