// Pack ... func Pack(inputPath string, outputPath string) (fileName string, err error) { err = Check(inputPath) if err != nil { return } packageFile := path.Join(inputPath, PackageFileName) binFolder := path.Join(inputPath, BinFolder) pkg, err := LoadFile(packageFile) if err != nil { return } fileName = pkg.Name if pkg.Version != "" { fileName += "-" + pkg.Version } fileName += ".tar.gz" filePath := path.Join(outputPath, fileName) tar := new(archivex.TarFile) tar.Compressed = true if err = tar.Create(filePath); err != nil { return } defer tar.Close() if err = tar.AddFile(packageFile); err != nil { return } if err = tar.AddAll(binFolder, true); err != nil { return } return }