mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	Synced licenses with github repo (#1246)
* Added script to download licenses from github * Synced licenses with github repo
This commit is contained in:
		
							
								
								
									
										109
									
								
								scripts/generate-licenses.go
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								scripts/generate-licenses.go
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,109 @@ | ||||
| // +build !build | ||||
|  | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| 	"archive/tar" | ||||
| 	"compress/gzip" | ||||
| 	"flag" | ||||
| 	"fmt" | ||||
| 	"io" | ||||
| 	"io/ioutil" | ||||
| 	"log" | ||||
| 	"net/http" | ||||
| 	"os" | ||||
| 	"path" | ||||
| 	"path/filepath" | ||||
| 	"strings" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	prefix      = "gitea-licenses" | ||||
| 	url         = "https://api.github.com/repos/spdx/license-list/tarball" | ||||
| 	destination = "" | ||||
| ) | ||||
|  | ||||
| func init() { | ||||
| 	flag.StringVar(&destination, "dest", "options/license/", "destination for the licenses") | ||||
| } | ||||
|  | ||||
| func main() { | ||||
| 	flag.Parse() | ||||
|  | ||||
| 	file, err := ioutil.TempFile(os.TempDir(), prefix) | ||||
|  | ||||
| 	if err != nil { | ||||
| 		log.Fatalf("Failed to create temp file. %s", err) | ||||
| 	} | ||||
|  | ||||
| 	defer os.Remove(file.Name()) | ||||
|  | ||||
| 	resp, err := http.Get(url) | ||||
|  | ||||
| 	if err != nil { | ||||
| 		log.Fatalf("Failed to download archive. %s", err) | ||||
| 	} | ||||
|  | ||||
| 	defer resp.Body.Close() | ||||
|  | ||||
| 	if _, err := io.Copy(file, resp.Body); err != nil { | ||||
| 		log.Fatalf("Failed to copy archive to file. %s", err) | ||||
| 	} | ||||
|  | ||||
| 	if _, err := file.Seek(0, 0); err != nil { | ||||
| 		log.Fatalf("Failed to reset seek on archive. %s", err) | ||||
| 	} | ||||
|  | ||||
| 	gz, err := gzip.NewReader(file) | ||||
|  | ||||
| 	if err != nil { | ||||
| 		log.Fatalf("Failed to gunzip the archive. %s", err) | ||||
| 	} | ||||
|  | ||||
| 	tr := tar.NewReader(gz) | ||||
|  | ||||
| 	for { | ||||
| 		hdr, err := tr.Next() | ||||
|  | ||||
| 		if err == io.EOF { | ||||
| 			break | ||||
| 		} | ||||
|  | ||||
| 		if err != nil { | ||||
| 			log.Fatalf("Failed to iterate archive. %s", err) | ||||
| 		} | ||||
|  | ||||
| 		fmt.Println(hdr.Name) | ||||
| 		fmt.Println(filepath.Ext(hdr.Name)) | ||||
|  | ||||
| 		if filepath.Ext(hdr.Name) != ".txt" { | ||||
| 			continue | ||||
| 		} | ||||
|  | ||||
| 		if strings.HasPrefix(filepath.Base(hdr.Name), "README") { | ||||
| 			continue | ||||
| 		} | ||||
|  | ||||
| 		if strings.HasPrefix(filepath.Base(hdr.Name), "deprecated_") { | ||||
| 			continue | ||||
| 		} | ||||
|  | ||||
| 		fmt.Println(path.Join(destination, strings.TrimSuffix(filepath.Base(hdr.Name), ".txt"))) | ||||
|  | ||||
| 		out, err := os.Create(path.Join(destination, strings.TrimSuffix(filepath.Base(hdr.Name), ".txt"))) | ||||
|  | ||||
| 		if err != nil { | ||||
| 			log.Fatalf("Failed to create new file. %s", err) | ||||
| 		} | ||||
|  | ||||
| 		defer out.Close() | ||||
|  | ||||
| 		if _, err := io.Copy(out, tr); err != nil { | ||||
| 			log.Fatalf("Failed to write new file. %s", err) | ||||
| 		} else { | ||||
| 			fmt.Printf("Written %s\n", out.Name()) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	fmt.Println("Done") | ||||
| } | ||||
		Reference in New Issue
	
	Block a user