add arguments parser
This commit is contained in:
		
							parent
							
								
									5d50f308d9
								
							
						
					
					
						commit
						a7776f01f6
					
				
							
								
								
									
										2
									
								
								go.sum
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								go.sum
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | github.com/akamensky/argparse v1.3.1 h1:kP6+OyvR0fuBH6UhbE6yh/nskrDEIQgEA1SUXDPjx4g= | ||||||
|  | github.com/akamensky/argparse v1.3.1/go.mod h1:S5kwC7IuDcEr5VeXtGPRVZ5o/FdhcMlQz4IZQuw64xA= | ||||||
							
								
								
									
										36
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								main.go
									
									
									
									
									
								
							| @ -1,9 +1,41 @@ | |||||||
| package main | package main | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
|  | 	"github.com/akamensky/argparse" | ||||||
| 	"log" | 	"log" | ||||||
|  | 	"os" | ||||||
|  | 	"fmt" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func main() { | // parseArguments - get needed arguments to launch the `packer` | ||||||
| 	log.Printf("packer") | // returns 3 strings : | ||||||
|  | // * regex | ||||||
|  | // * outputPath | ||||||
|  | // * directory | ||||||
|  | func parseArguments() (string, string, string, error) { | ||||||
|  | 	parser := argparse.NewParser("packer", "packer - zip file where filenames match with a regex") | ||||||
|  | 	var err error | ||||||
|  | 
 | ||||||
|  | 	regex := parser.String("r", "regex", &argparse.Options{Required: true, Help: "filename Regex"}) | ||||||
|  | 	outputPath := parser.String("o", "output-path", &argparse.Options{Required: true, Help: "zip output path (including zip name)"}) | ||||||
|  | 	directory := parser.String("d", "directory", &argparse.Options{Required: false, Help: "root directory to check files", Default: "."}) | ||||||
|  | 
 | ||||||
|  | 	parseError := parser.Parse(os.Args) | ||||||
|  | 	if parseError != nil { | ||||||
|  | 		err = fmt.Errorf("parsing error: %s", parseError) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return *regex, *outputPath, *directory, err | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func main() { | ||||||
|  | 
 | ||||||
|  | 	regex, directory, outputPath, err := parseArguments() | ||||||
|  | 
 | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Fatal("error while parsing args : ", err) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	log.Printf("looking for file '%s' in '%s' ...", regex, directory) | ||||||
|  | 	log.Printf("files zipped in %s", outputPath) | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 rmanach
						rmanach