github.com/TrueBlocks/trueblocks-core/src/apps/chifra@v0.0.0-20241022031540-b362680128f7/pkg/utils/is_permitted.go (about)

     1  package utils
     2  
     3  import "os"
     4  
     5  func IsPermitted() bool {
     6  	isVersion := false
     7  	isStatus := false
     8  	isConfig := false
     9  	hasPaths := false
    10  	hasEdit := false
    11  	cnt := len(os.Args)
    12  	for _, arg := range os.Args {
    13  		if arg == "help" {
    14  			return false
    15  		} else if arg == "status" {
    16  			isStatus = true
    17  		} else if arg == "config" {
    18  			isConfig = true
    19  		} else if arg == "--paths" {
    20  			hasPaths = true
    21  		} else if arg == "--version" || arg == "version" {
    22  			isVersion = true
    23  		} else if arg == "edit" {
    24  			hasEdit = true
    25  		} else if arg != "--verbose" {
    26  			isStatus = false
    27  			isConfig = false
    28  		} else {
    29  			cnt-- // allow --verbose
    30  		}
    31  	}
    32  
    33  	if isVersion {
    34  		return true
    35  	}
    36  
    37  	if isStatus && cnt == 2 {
    38  		return true
    39  	}
    40  
    41  	return isConfig && (hasPaths || hasEdit) && cnt < 4
    42  }