providers/os: Add countFiles function
This commit is contained in:
		
							parent
							
								
									b974fde7e4
								
							
						
					
					
						commit
						e72523c036
					
				@ -37,6 +37,7 @@ func (this *Provider) FuncMapFor (document *step.Document) template.FuncMap {
 | 
			
		||||
		"readDirDate":   stat.funcReadDirDate,
 | 
			
		||||
		"listFiles":     stat.funcListFiles,
 | 
			
		||||
		"listFilesDate": stat.funcListFilesDate,
 | 
			
		||||
		"countFiles":    stat.countFiles,
 | 
			
		||||
		"writeFile":     stat.funcWriteFile,
 | 
			
		||||
		"appendFile":    stat.funcAppendFile,
 | 
			
		||||
		"remove":        stat.funcRemove,
 | 
			
		||||
@ -145,6 +146,17 @@ func (this *state) funcWriteFile (name, content string) error {
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *state) countFiles(name string) (int, error) {
 | 
			
		||||
	name, err := this.document.Rel(name)
 | 
			
		||||
	if err != nil { return err }
 | 
			
		||||
	// genuinely can't believe this is the only way to do it, we have to
 | 
			
		||||
	// read their names and everything, all that work just to know how many
 | 
			
		||||
	// files there are, its slightly upsetting
 | 
			
		||||
	files, err := os.ReadDir(name)
 | 
			
		||||
	if err != nil { return err }
 | 
			
		||||
	return len(files), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *state) funcAppendFile (name, content string) error {
 | 
			
		||||
	name, err := this.document.Rel(name)
 | 
			
		||||
	if err != nil { return err }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user