initial
This commit is contained in:
		
						commit
						7fad5dc142
					
				
							
								
								
									
										15
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | |||||||
|  | # sneak/goutil | ||||||
|  | 
 | ||||||
|  | This is a bunch of little general-purpose go utility functions that I don't | ||||||
|  | feel comfortable including as-is in my normal projects as they are too | ||||||
|  | general, so I put them here. | ||||||
|  | 
 | ||||||
|  | Suggestions are welcome. | ||||||
|  | 
 | ||||||
|  | # License | ||||||
|  | 
 | ||||||
|  | WTFPL (free software, no restrictions) | ||||||
|  | 
 | ||||||
|  | # Author | ||||||
|  | 
 | ||||||
|  | * [sneak@sneak.berlin](mailto:sneak@sneak.berlin) | ||||||
							
								
								
									
										5
									
								
								go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								go.mod
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | |||||||
|  | module git.eeqj.de/sneak/goutil | ||||||
|  | 
 | ||||||
|  | go 1.14 | ||||||
|  | 
 | ||||||
|  | require github.com/hako/durafmt v0.0.0-20191009132224-3f39dc1ed9f4 | ||||||
							
								
								
									
										2
									
								
								go.sum
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								go.sum
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | github.com/hako/durafmt v0.0.0-20191009132224-3f39dc1ed9f4 h1:60gBOooTSmNtrqNaRvrDbi8VAne0REaek2agjnITKSw= | ||||||
|  | github.com/hako/durafmt v0.0.0-20191009132224-3f39dc1ed9f4/go.mod h1:5Scbynm8dF1XAPwIwkGPqzkM/shndPm79Jd1003hTjE= | ||||||
							
								
								
									
										45
									
								
								util.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								util.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,45 @@ | |||||||
|  | package goutil | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"errors" | ||||||
|  | 	"math" | ||||||
|  | 	"os" | ||||||
|  | 	"regexp" | ||||||
|  | 	"time" | ||||||
|  | 
 | ||||||
|  | 	"github.com/hako/durafmt" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | func FilterToAlnum(input string) string { | ||||||
|  | 	re := regexp.MustCompile("[^a-zA-Z0-9]+") | ||||||
|  | 	return re.ReplaceAllString(input, "") | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func TimeDiffHuman(first time.Time, second time.Time) string { | ||||||
|  | 	if first.Before(second) { | ||||||
|  | 		return durafmt.ParseShort(second.Sub(first)).String() | ||||||
|  | 	} else { | ||||||
|  | 		return durafmt.ParseShort(first.Sub(second)).String() | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Does anyone else use uints for things that are always >=0 like counts and
 | ||||||
|  | func TimeDiffAbsSeconds(first time.Time, second time.Time) uint { | ||||||
|  | 	return uint(math.Abs(first.Sub(second).Truncate(time.Second).Seconds())) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func Mkdirp(p string) error { | ||||||
|  | 	src, err := os.Stat(p) | ||||||
|  | 	if os.IsNotExist(err) { | ||||||
|  | 		errDir := os.MkdirAll(p, 0755) | ||||||
|  | 		if errDir != nil { | ||||||
|  | 			return err | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  | 	if src.Mode().IsRegular() { | ||||||
|  | 		return errors.New("file already exists at path") | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user