mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	Propagate install_if and provider_priority to APKINDEX (#28899)
Resolves https://github.com/go-gitea/gitea/issues/28704 Example of an entry in the generated `APKINDEX` file: ``` C:Q1xCO3H9LTTEbhKt9G1alSC87I56c= P:hello V:2.12-r1 A:x86_64 T:The GNU Hello program produces a familiar, friendly greeting U:https://www.gnu.org/software/hello/ L:GPL-3.0-or-later S:15403 I:36864 o:hello m: t:1705934118 D:so:libc.musl-x86_64.so.1 p:cmd:hello=2.12-r1 i:foobar=1.0 !baz k:42 ``` the `i:` and `k:` entries are new. --------- Co-authored-by: KN4CK3R <admin@oldschoolhack.me>
This commit is contained in:
		| @@ -55,16 +55,17 @@ type VersionMetadata struct { | |||||||
| } | } | ||||||
|  |  | ||||||
| type FileMetadata struct { | type FileMetadata struct { | ||||||
| 	Checksum     string   `json:"checksum"` | 	Checksum         string   `json:"checksum"` | ||||||
| 	Packager     string   `json:"packager,omitempty"` | 	Packager         string   `json:"packager,omitempty"` | ||||||
| 	BuildDate    int64    `json:"build_date,omitempty"` | 	BuildDate        int64    `json:"build_date,omitempty"` | ||||||
| 	Size         int64    `json:"size,omitempty"` | 	Size             int64    `json:"size,omitempty"` | ||||||
| 	Architecture string   `json:"architecture,omitempty"` | 	Architecture     string   `json:"architecture,omitempty"` | ||||||
| 	Origin       string   `json:"origin,omitempty"` | 	Origin           string   `json:"origin,omitempty"` | ||||||
| 	CommitHash   string   `json:"commit_hash,omitempty"` | 	CommitHash       string   `json:"commit_hash,omitempty"` | ||||||
| 	InstallIf    string   `json:"install_if,omitempty"` | 	InstallIf        string   `json:"install_if,omitempty"` | ||||||
| 	Provides     []string `json:"provides,omitempty"` | 	Provides         []string `json:"provides,omitempty"` | ||||||
| 	Dependencies []string `json:"dependencies,omitempty"` | 	Dependencies     []string `json:"dependencies,omitempty"` | ||||||
|  | 	ProviderPriority int64    `json:"provider_priority,omitempty"` | ||||||
| } | } | ||||||
|  |  | ||||||
| // ParsePackage parses the Alpine package file | // ParsePackage parses the Alpine package file | ||||||
| @@ -188,6 +189,11 @@ func ParsePackageInfo(r io.Reader) (*Package, error) { | |||||||
| 			if value != "" { | 			if value != "" { | ||||||
| 				p.FileMetadata.Dependencies = append(p.FileMetadata.Dependencies, value) | 				p.FileMetadata.Dependencies = append(p.FileMetadata.Dependencies, value) | ||||||
| 			} | 			} | ||||||
|  | 		case "provider_priority": | ||||||
|  | 			n, err := strconv.ParseInt(value, 10, 64) | ||||||
|  | 			if err == nil { | ||||||
|  | 				p.FileMetadata.ProviderPriority = n | ||||||
|  | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	if err := scanner.Err(); err != nil { | 	if err := scanner.Err(); err != nil { | ||||||
|   | |||||||
| @@ -230,6 +230,12 @@ func buildPackagesIndex(ctx context.Context, ownerID int64, repoVersion *package | |||||||
| 		if len(pd.FileMetadata.Provides) > 0 { | 		if len(pd.FileMetadata.Provides) > 0 { | ||||||
| 			fmt.Fprintf(&buf, "p:%s\n", strings.Join(pd.FileMetadata.Provides, " ")) | 			fmt.Fprintf(&buf, "p:%s\n", strings.Join(pd.FileMetadata.Provides, " ")) | ||||||
| 		} | 		} | ||||||
|  | 		if pd.FileMetadata.InstallIf != "" { | ||||||
|  | 			fmt.Fprintf(&buf, "i:%s\n", pd.FileMetadata.InstallIf) | ||||||
|  | 		} | ||||||
|  | 		if pd.FileMetadata.ProviderPriority > 0 { | ||||||
|  | 			fmt.Fprintf(&buf, "k:%d\n", pd.FileMetadata.ProviderPriority) | ||||||
|  | 		} | ||||||
| 		fmt.Fprint(&buf, "\n") | 		fmt.Fprint(&buf, "\n") | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user