mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-11-04 04:22:24 -06:00 
			
		
		
		
	
		
			
	
	
		
			74 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			74 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 
								 | 
							
								package jpegstructure
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import (
							 | 
						||
| 
								 | 
							
									"os"
							 | 
						||
| 
								 | 
							
									"path"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									"github.com/dsoprea/go-logging"
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var (
							 | 
						||
| 
								 | 
							
									testImageRelFilepath = "NDM_8901.jpg"
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var (
							 | 
						||
| 
								 | 
							
									moduleRootPath = ""
							 | 
						||
| 
								 | 
							
									assetsPath     = ""
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// GetModuleRootPath returns the root-path of the module.
							 | 
						||
| 
								 | 
							
								func GetModuleRootPath() string {
							 | 
						||
| 
								 | 
							
									if moduleRootPath == "" {
							 | 
						||
| 
								 | 
							
										moduleRootPath = os.Getenv("JPEG_MODULE_ROOT_PATH")
							 | 
						||
| 
								 | 
							
										if moduleRootPath != "" {
							 | 
						||
| 
								 | 
							
											return moduleRootPath
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										currentWd, err := os.Getwd()
							 | 
						||
| 
								 | 
							
										log.PanicIf(err)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										currentPath := currentWd
							 | 
						||
| 
								 | 
							
										visited := make([]string, 0)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										for {
							 | 
						||
| 
								 | 
							
											tryStampFilepath := path.Join(currentPath, ".MODULE_ROOT")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											_, err := os.Stat(tryStampFilepath)
							 | 
						||
| 
								 | 
							
											if err != nil && os.IsNotExist(err) != true {
							 | 
						||
| 
								 | 
							
												log.Panic(err)
							 | 
						||
| 
								 | 
							
											} else if err == nil {
							 | 
						||
| 
								 | 
							
												break
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											visited = append(visited, tryStampFilepath)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											currentPath = path.Dir(currentPath)
							 | 
						||
| 
								 | 
							
											if currentPath == "/" {
							 | 
						||
| 
								 | 
							
												log.Panicf("could not find module-root: %v", visited)
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										moduleRootPath = currentPath
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									return moduleRootPath
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// GetTestAssetsPath returns the path of the test-assets.
							 | 
						||
| 
								 | 
							
								func GetTestAssetsPath() string {
							 | 
						||
| 
								 | 
							
									if assetsPath == "" {
							 | 
						||
| 
								 | 
							
										moduleRootPath := GetModuleRootPath()
							 | 
						||
| 
								 | 
							
										assetsPath = path.Join(moduleRootPath, "assets")
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									return assetsPath
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// GetTestImageFilepath returns the file-path of the common test-image.
							 | 
						||
| 
								 | 
							
								func GetTestImageFilepath() string {
							 | 
						||
| 
								 | 
							
									assetsPath := GetTestAssetsPath()
							 | 
						||
| 
								 | 
							
									filepath := path.Join(assetsPath, testImageRelFilepath)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									return filepath
							 | 
						||
| 
								 | 
							
								}
							 |