]> source.dussan.org Git - gitea.git/commitdiff
Fix nil reference in repo generation (#9660) (#9666)
authorJohn Olheiser <42128690+jolheiser@users.noreply.github.com>
Thu, 9 Jan 2020 16:50:21 +0000 (10:50 -0600)
committerzeripath <art27@cantab.net>
Thu, 9 Jan 2020 16:50:21 +0000 (16:50 +0000)
* Fix nil reference

Signed-off-by: jolheiser <john.olheiser@gmail.com>
* Tighten

Signed-off-by: jolheiser <john.olheiser@gmail.com>
models/repo_generate.go

index 556a5fc2f72b9b959ccb46fefc2c95f94971c328..1b0466eaa7c8a18c99c3fce1b075ef88114cb0f3 100644 (file)
@@ -124,41 +124,43 @@ func generateRepoCommit(e Engine, repo, templateRepo, generateRepo *Repository,
                return fmt.Errorf("checkGiteaTemplate: %v", err)
        }
 
-       if err := os.Remove(gt.Path); err != nil {
-               return fmt.Errorf("remove .giteatemplate: %v", err)
-       }
-
-       // Avoid walking tree if there are no globs
-       if len(gt.Globs()) > 0 {
-               tmpDirSlash := strings.TrimSuffix(filepath.ToSlash(tmpDir), "/") + "/"
-               if err := filepath.Walk(tmpDirSlash, func(path string, info os.FileInfo, walkErr error) error {
-                       if walkErr != nil {
-                               return walkErr
-                       }
+       if gt != nil {
+               if err := os.Remove(gt.Path); err != nil {
+                       return fmt.Errorf("remove .giteatemplate: %v", err)
+               }
 
-                       if info.IsDir() {
-                               return nil
-                       }
+               // Avoid walking tree if there are no globs
+               if len(gt.Globs()) > 0 {
+                       tmpDirSlash := strings.TrimSuffix(filepath.ToSlash(tmpDir), "/") + "/"
+                       if err := filepath.Walk(tmpDirSlash, func(path string, info os.FileInfo, walkErr error) error {
+                               if walkErr != nil {
+                                       return walkErr
+                               }
 
-                       base := strings.TrimPrefix(filepath.ToSlash(path), tmpDirSlash)
-                       for _, g := range gt.Globs() {
-                               if g.Match(base) {
-                                       content, err := ioutil.ReadFile(path)
-                                       if err != nil {
-                                               return err
-                                       }
+                               if info.IsDir() {
+                                       return nil
+                               }
 
-                                       if err := ioutil.WriteFile(path,
-                                               []byte(generateExpansion(string(content), templateRepo, generateRepo)),
-                                               0644); err != nil {
-                                               return err
+                               base := strings.TrimPrefix(filepath.ToSlash(path), tmpDirSlash)
+                               for _, g := range gt.Globs() {
+                                       if g.Match(base) {
+                                               content, err := ioutil.ReadFile(path)
+                                               if err != nil {
+                                                       return err
+                                               }
+
+                                               if err := ioutil.WriteFile(path,
+                                                       []byte(generateExpansion(string(content), templateRepo, generateRepo)),
+                                                       0644); err != nil {
+                                                       return err
+                                               }
+                                               break
                                        }
-                                       break
                                }
+                               return nil
+                       }); err != nil {
+                               return err
                        }
-                       return nil
-               }); err != nil {
-                       return err
                }
        }