Skip to content

Commit ee9ce0c

Browse files
jolheiserlafriks
authored andcommitted
Fix nil reference in repo generation (#9660)
* Fix nil reference Signed-off-by: jolheiser <[email protected]> * Tighten Signed-off-by: jolheiser <[email protected]>
1 parent 25531c7 commit ee9ce0c

File tree

1 file changed

+31
-29
lines changed

1 file changed

+31
-29
lines changed

models/repo_generate.go

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -124,41 +124,43 @@ func generateRepoCommit(e Engine, repo, templateRepo, generateRepo *Repository,
124124
return fmt.Errorf("checkGiteaTemplate: %v", err)
125125
}
126126

127-
if err := os.Remove(gt.Path); err != nil {
128-
return fmt.Errorf("remove .giteatemplate: %v", err)
129-
}
130-
131-
// Avoid walking tree if there are no globs
132-
if len(gt.Globs()) > 0 {
133-
tmpDirSlash := strings.TrimSuffix(filepath.ToSlash(tmpDir), "/") + "/"
134-
if err := filepath.Walk(tmpDirSlash, func(path string, info os.FileInfo, walkErr error) error {
135-
if walkErr != nil {
136-
return walkErr
137-
}
127+
if gt != nil {
128+
if err := os.Remove(gt.Path); err != nil {
129+
return fmt.Errorf("remove .giteatemplate: %v", err)
130+
}
138131

139-
if info.IsDir() {
140-
return nil
141-
}
132+
// Avoid walking tree if there are no globs
133+
if len(gt.Globs()) > 0 {
134+
tmpDirSlash := strings.TrimSuffix(filepath.ToSlash(tmpDir), "/") + "/"
135+
if err := filepath.Walk(tmpDirSlash, func(path string, info os.FileInfo, walkErr error) error {
136+
if walkErr != nil {
137+
return walkErr
138+
}
142139

143-
base := strings.TrimPrefix(filepath.ToSlash(path), tmpDirSlash)
144-
for _, g := range gt.Globs() {
145-
if g.Match(base) {
146-
content, err := ioutil.ReadFile(path)
147-
if err != nil {
148-
return err
149-
}
140+
if info.IsDir() {
141+
return nil
142+
}
150143

151-
if err := ioutil.WriteFile(path,
152-
[]byte(generateExpansion(string(content), templateRepo, generateRepo)),
153-
0644); err != nil {
154-
return err
144+
base := strings.TrimPrefix(filepath.ToSlash(path), tmpDirSlash)
145+
for _, g := range gt.Globs() {
146+
if g.Match(base) {
147+
content, err := ioutil.ReadFile(path)
148+
if err != nil {
149+
return err
150+
}
151+
152+
if err := ioutil.WriteFile(path,
153+
[]byte(generateExpansion(string(content), templateRepo, generateRepo)),
154+
0644); err != nil {
155+
return err
156+
}
157+
break
155158
}
156-
break
157159
}
160+
return nil
161+
}); err != nil {
162+
return err
158163
}
159-
return nil
160-
}); err != nil {
161-
return err
162164
}
163165
}
164166

0 commit comments

Comments
 (0)