mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Fix nil reference in repo generation (#9660)
* Fix nil reference Signed-off-by: jolheiser <john.olheiser@gmail.com> * Tighten Signed-off-by: jolheiser <john.olheiser@gmail.com>
This commit is contained in:
		@@ -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)
 | 
			
		||||
	}
 | 
			
		||||
	if gt != nil {
 | 
			
		||||
		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 info.IsDir() {
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			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
 | 
			
		||||
		// 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 info.IsDir() {
 | 
			
		||||
					return nil
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				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
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
				return nil
 | 
			
		||||
			}); err != nil {
 | 
			
		||||
				return err
 | 
			
		||||
			}
 | 
			
		||||
			return nil
 | 
			
		||||
		}); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user