mirror of
				https://github.com/kata-containers/kata-containers.git
				synced 2025-10-31 17:37:20 +00:00 
			
		
		
		
	Move the tool as a dependency for static checks migration. Fixes #8187 Signed-off-by: Bin Liu <bin@hyper.sh> Signed-off-by: Chelsea Mafrica <chelsea.e.mafrica@intel.com> Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com> Signed-off-by: Ganesh Maharaj Mahalingam <ganesh.mahalingam@intel.com> Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com> Signed-off-by: Julio Montes <julio.montes@intel.com>
		
			
				
	
	
		
			136 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| //
 | |
| // Copyright (c) 2019 Intel Corporation
 | |
| //
 | |
| // SPDX-License-Identifier: Apache-2.0
 | |
| //
 | |
| 
 | |
| package main
 | |
| 
 | |
| import (
 | |
| 	"errors"
 | |
| 	"fmt"
 | |
| 	"path/filepath"
 | |
| 	"strings"
 | |
| 
 | |
| 	"github.com/sirupsen/logrus"
 | |
| )
 | |
| 
 | |
| // linkAddrToPath converts a link address into a path name.
 | |
| func (d *Doc) linkAddrToPath(address string) (string, error) {
 | |
| 	if address == "" {
 | |
| 		return "", errors.New("need address")
 | |
| 	}
 | |
| 
 | |
| 	dir := filepath.Dir(d.Name)
 | |
| 
 | |
| 	var file string
 | |
| 
 | |
| 	// An "absolute link path" like this has been specified:
 | |
| 	//
 | |
| 	// [Foo](/absolute-link.md)
 | |
| 	if strings.HasPrefix(address, absoluteLinkPrefix) {
 | |
| 		if !fileExists(docRoot) {
 | |
| 			return "", fmt.Errorf("document root %q does not exist", docRoot)
 | |
| 		}
 | |
| 
 | |
| 		file = filepath.Join(docRoot, address)
 | |
| 	} else {
 | |
| 		file = filepath.Join(dir, address)
 | |
| 	}
 | |
| 
 | |
| 	return file, nil
 | |
| }
 | |
| 
 | |
| // addHeading adds the specified heading to the document.
 | |
| //
 | |
| // Note that headings must be unique.
 | |
| func (d *Doc) addHeading(heading Heading) error {
 | |
| 	name := heading.Name
 | |
| 
 | |
| 	if name == "" {
 | |
| 		return d.Errorf("heading name cannot be blank: %+v", heading)
 | |
| 	}
 | |
| 
 | |
| 	if heading.LinkName == "" {
 | |
| 		return d.Errorf("heading link name cannot be blank: %q (%+v)",
 | |
| 			name, heading)
 | |
| 	}
 | |
| 
 | |
| 	if heading.Level <= 0 {
 | |
| 		return d.Errorf("heading level must be atleast 1: %q (%+v)",
 | |
| 			name, heading)
 | |
| 	}
 | |
| 
 | |
| 	if _, ok := d.Headings[name]; ok {
 | |
| 		return d.Errorf("duplicate heading: %q (heading: %+v)",
 | |
| 			name, heading)
 | |
| 	}
 | |
| 
 | |
| 	// Potentially change the ID to handle strange characters
 | |
| 	// supported in links by GitHub.
 | |
| 	id, err := createHeadingID(heading.Name)
 | |
| 	if err != nil {
 | |
| 		return err
 | |
| 	}
 | |
| 
 | |
| 	heading.LinkName = id
 | |
| 
 | |
| 	d.Logger.WithField("heading", fmt.Sprintf("%+v", heading)).Debug("adding heading")
 | |
| 
 | |
| 	d.Headings[name] = heading
 | |
| 
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| // addLink potentially adds the specified link to the document.
 | |
| //
 | |
| // Note that links do not need to be unique: a document can contain
 | |
| // multiple links with:
 | |
| //
 | |
| // - the same description and the same address.
 | |
| // - the same description but with different addresses.
 | |
| // - different descriptions but with the same address.
 | |
| func (d *Doc) addLink(link Link) error {
 | |
| 	addr := link.Address
 | |
| 
 | |
| 	if link.ResolvedPath != "" {
 | |
| 		addr = link.ResolvedPath
 | |
| 	}
 | |
| 
 | |
| 	if addr == "" {
 | |
| 		return d.Errorf("link address cannot be blank: %+v", link)
 | |
| 	}
 | |
| 
 | |
| 	if link.Type == unknownLink {
 | |
| 		return d.Errorf("BUG: link type invalid: %+v", link)
 | |
| 	}
 | |
| 
 | |
| 	// Not checked by default as magic "build status" / go report / godoc
 | |
| 	// links don't have a description - they have a image only.
 | |
| 	if strict && link.Description == "" {
 | |
| 		return d.Errorf("link description cannot be blank: %q (%+v)",
 | |
| 			addr, link)
 | |
| 	}
 | |
| 
 | |
| 	fields := logrus.Fields{
 | |
| 		"link": fmt.Sprintf("%+v", link),
 | |
| 	}
 | |
| 
 | |
| 	links := d.Links[addr]
 | |
| 
 | |
| 	for _, l := range links {
 | |
| 		if l.Type == link.Type {
 | |
| 			d.Logger.WithFields(fields).Debug("not adding duplicate link")
 | |
| 
 | |
| 			return nil
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	d.Logger.WithFields(fields).Debug("adding link")
 | |
| 
 | |
| 	links = append(links, link)
 | |
| 	d.Links[addr] = links
 | |
| 
 | |
| 	return nil
 | |
| }
 |