refactor(server): Always include 'cacert' & 'iana-etc'

These two packages almost always end up being required by programs,
but people don't necessarily consider them.

They will now always be added and their popularity is artificially
inflated to ensure they end up at the top of the layer list.
This commit is contained in:
Vincent Ambo 2019-10-03 22:13:40 +01:00 committed by Vincent Ambo
parent 9bb6d0ae25
commit d9b329ef59
2 changed files with 19 additions and 10 deletions

View file

@ -87,7 +87,7 @@ type BuildResult struct {
// be used to invoke Nix.
//
// It will expand convenience names under the hood (see the `convenienceNames`
// function below).
// function below) and append packages that are always included (cacert, iana-etc).
//
// Once assembled the image structure uses a sorted representation of
// the name. This is to avoid unnecessarily cache-busting images if
@ -95,6 +95,7 @@ type BuildResult struct {
func ImageFromName(name string, tag string) Image {
pkgs := strings.Split(name, "/")
expanded := convenienceNames(pkgs)
expanded = append(expanded, "cacert", "iana-etc")
sort.Strings(pkgs)
sort.Strings(expanded)
@ -131,7 +132,7 @@ type ImageResult struct {
//
// * `shell`: Includes bash, coreutils and other common command-line tools
func convenienceNames(packages []string) []string {
shellPackages := []string{"bashInteractive", "cacert", "coreutils", "iana-etc", "moreutils", "nano"}
shellPackages := []string{"bashInteractive", "coreutils", "moreutils", "nano"}
if packages[0] == "shell" {
return append(packages[1:], shellPackages...)