From 815d0bb29a8fe027290c13b3bf319e9f6666a28d Mon Sep 17 00:00:00 2001 From: EnumDev Date: Wed, 14 May 2025 16:33:30 +0300 Subject: [PATCH] Rename BPM Repositories to BPM Databases --- README.md | 4 +- config/bpm.conf | 6 +- src/bpm/main.go | 46 +++---- src/bpmlib/config.go | 14 +- src/bpmlib/{repositories.go => databases.go} | 128 +++++++++---------- src/bpmlib/dependencies.go | 4 +- src/bpmlib/errors.go | 4 +- src/bpmlib/general.go | 30 ++--- src/bpmlib/operations.go | 44 +++---- 9 files changed, 140 insertions(+), 140 deletions(-) rename src/bpmlib/{repositories.go => databases.go} (55%) diff --git a/README.md b/README.md index d49f03b..527b23d 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ You are able to install bpm packages by typing the following: ```sh bpm install /path/to/package.bpm ``` -You can also use the package name directly if using repositories +You can also use the package name directly if using databases ```sh bpm install package_name ``` @@ -50,7 +50,7 @@ To remove all unused dependencies and clean cached files try using the cleanup c bpm cleanup ``` -If using repositories, all packages can be updated using this simple command +If using databases, all packages can be updated using this simple command ```sh bpm update ``` diff --git a/config/bpm.conf b/config/bpm.conf index 6d31c3e..f32bc41 100644 --- a/config/bpm.conf +++ b/config/bpm.conf @@ -1,7 +1,7 @@ ignore_packages: [] privilege_escalator_cmd: "sudo" compilation_env: [] -repositories: - - name: example-repository - source: https://my-repo.xyz/ +databases: + - name: example-database + source: https://my-database.xyz/ disabled: true \ No newline at end of file diff --git a/src/bpm/main.go b/src/bpm/main.go index 32ef64b..329d8af 100644 --- a/src/bpm/main.go +++ b/src/bpm/main.go @@ -39,7 +39,7 @@ var installationReason = "" var nosync = true var removeUnused = false var doCleanup = false -var showRepoInfo = false +var showDatabaseInfo = false var installSrcPkgDepends = false var skipChecks = false var outputDirectory = "" @@ -116,7 +116,7 @@ func resolveCommand() { } // Read local databases - err := bpmlib.ReadLocalDatabases() + err := bpmlib.ReadLocalDatabaseFiles() if err != nil { log.Fatalf("Error: could not read local databases: %s", err) } @@ -125,13 +125,13 @@ func resolveCommand() { var info *bpmlib.PackageInfo isFile := false showInstallationReason := false - if showRepoInfo { + if showDatabaseInfo { var err error - var entry *bpmlib.RepositoryEntry - entry, _, err = bpmlib.GetRepositoryEntry(pkg) + var entry *bpmlib.BPMDatabaseEntry + entry, _, err = bpmlib.GetDatabaseEntry(pkg) if err != nil { if entry = bpmlib.ResolveVirtualPackage(pkg); entry == nil { - log.Fatalf("Error: could not find package (%s) in any repository\n", pkg) + log.Fatalf("Error: could not find package (%s) in any database\n", pkg) } } info = entry.Info @@ -167,7 +167,7 @@ func resolveCommand() { } case list: // Read local databases - err := bpmlib.ReadLocalDatabases() + err := bpmlib.ReadLocalDatabaseFiles() if err != nil { log.Fatalf("Error: could not read local databases: %s", err) } @@ -207,7 +207,7 @@ func resolveCommand() { } // Read local databases - err := bpmlib.ReadLocalDatabases() + err := bpmlib.ReadLocalDatabaseFiles() if err != nil { log.Fatalf("Error: could not read local databases: %s", err) } @@ -215,8 +215,8 @@ func resolveCommand() { for i, term := range searchTerms { nameResults := make([]*bpmlib.PackageInfo, 0) descResults := make([]*bpmlib.PackageInfo, 0) - for _, repo := range bpmlib.BPMConfig.Repositories { - for _, entry := range repo.Entries { + for _, db := range bpmlib.BPMConfig.Databases { + for _, entry := range db.Entries { if strings.Contains(entry.Info.Name, term) { nameResults = append(nameResults, entry.Info) } else if strings.Contains(entry.Info.Description, term) { @@ -271,7 +271,7 @@ func resolveCommand() { } // Read local databases - err := bpmlib.ReadLocalDatabases() + err := bpmlib.ReadLocalDatabaseFiles() if err != nil { log.Fatalf("Error: could not read local databases: %s", err) } @@ -329,7 +329,7 @@ func resolveCommand() { // Read local databases if no sync if nosync { - err := bpmlib.ReadLocalDatabases() + err := bpmlib.ReadLocalDatabaseFiles() if err != nil { log.Fatalf("Error: could not read local databases: %s", err) } @@ -411,7 +411,7 @@ func resolveCommand() { } // Read local databases - err := bpmlib.ReadLocalDatabases() + err := bpmlib.ReadLocalDatabaseFiles() if err != nil { log.Fatalf("Error: could not read local databases: %s", err) } @@ -469,7 +469,7 @@ func resolveCommand() { if cleanupDependencies { // Read local databases - err := bpmlib.ReadLocalDatabases() + err := bpmlib.ReadLocalDatabaseFiles() if err != nil { log.Fatalf("Error: could not read local databases: %s", err) } @@ -571,7 +571,7 @@ func resolveCommand() { } // Read local databases - err := bpmlib.ReadLocalDatabases() + err := bpmlib.ReadLocalDatabaseFiles() if err != nil { log.Fatalf("Error: could not read local databases: %s", err) } @@ -643,7 +643,7 @@ func resolveCommand() { } else { // Ensure the required dependencies are installed if len(unmetDepends) != 0 { - log.Fatalf("Error: could not resolve dependencies: the following dependencies were not found in any repositories: " + strings.Join(unmetDepends, ", ")) + log.Fatalf("Error: could not resolve dependencies: the following dependencies were not found in any databases: " + strings.Join(unmetDepends, ", ")) } } @@ -738,14 +738,14 @@ func printHelp() { fmt.Println("-> flags will be read if passed right after the subcommand otherwise they will be read as subcommand arguments") fmt.Println("\033[1m---- Command List ----\033[0m") fmt.Println("-> bpm version | shows information on the installed version of bpm") - fmt.Println("-> bpm info [-R, --repos] | shows information on an installed package") + fmt.Println("-> bpm info [-R, --databases] | shows information on an installed package") fmt.Println(" -R= lets you define the root path which will be used") - fmt.Println(" --repos show information on package in repository") + fmt.Println(" --databases show information on package in configured databases") fmt.Println("-> bpm list [-R, -c, -n] | lists all installed packages") fmt.Println(" -R= lets you define the root path which will be used") fmt.Println(" -c lists the amount of installed packages") fmt.Println(" -n lists only the names of installed packages") - fmt.Println("-> bpm search | Searches for packages through declared repositories") + fmt.Println("-> bpm search | Searches for packages through configured databases") fmt.Println("-> bpm install [-R, -v, -y, -f, --reinstall, --reinstall-all, --no-optional, --installation-reason] | installs the following files") fmt.Println(" -R= lets you define the root path which will be used") fmt.Println(" -v Show additional information about what BPM is doing") @@ -755,7 +755,7 @@ func printHelp() { fmt.Println(" --reinstall-all Same as --reinstall but also reinstalls dependencies") fmt.Println(" --no-optional Prevents installation of optional dependencies") fmt.Println(" --installation-reason= sets the installation reason for all newly installed packages") - fmt.Println("-> bpm update [-R, -v, -y, -f, --reinstall, --no-sync] | updates all packages that are available in the repositories") + fmt.Println("-> bpm update [-R, -v, -y, -f, --reinstall, --no-sync] | updates all packages that are available in the configured databases") fmt.Println(" -R= lets you define the root path which will be used") fmt.Println(" -v Show additional information about what BPM is doing") fmt.Println(" -y skips the confirmation prompt") @@ -779,7 +779,7 @@ func printHelp() { fmt.Println(" --depends performs a dependency cleanup") fmt.Println(" --compilation-files performs a cleanup of compilation files") fmt.Println(" --compiled-pkgs performs a cleanup of compilation compiled binary packages") - fmt.Println(" --fetched-pkgs performs a cleanup of fetched packages from repositories") + fmt.Println(" --fetched-pkgs performs a cleanup of fetched packages from databases") fmt.Println("-> bpm file [-R] | shows what packages the following packages are managed by") fmt.Println(" -R= lets you define the root path which will be used") fmt.Println("-> bpm compile [-d, -s, -o] | Compile source BPM package") @@ -802,7 +802,7 @@ func resolveFlags() { // Info flags infoFlagSet := flag.NewFlagSet("Info flags", flag.ExitOnError) infoFlagSet.StringVar(&rootDir, "R", "/", "Set the destination root") - infoFlagSet.BoolVar(&showRepoInfo, "repos", false, "Show information on package in repository") + infoFlagSet.BoolVar(&showDatabaseInfo, "databases", false, "Show information on package in configured databases") infoFlagSet.Usage = printHelp // Install flags installFlagSet := flag.NewFlagSet("Install flags", flag.ExitOnError) @@ -845,7 +845,7 @@ func resolveFlags() { cleanupFlagSet.BoolVar(&cleanupDependencies, "depends", false, "Perform a dependency cleanup") cleanupFlagSet.BoolVar(&cleanupCompilationFiles, "compilation-files", false, "Perform a cleanup of compilation files") cleanupFlagSet.BoolVar(&cleanupCompiledPackages, "compiled-pkgs", false, "Perform a cleanup of compilation compiled binary packages") - cleanupFlagSet.BoolVar(&cleanupFetchedPackages, "fetched-pkgs", false, "Perform a cleanup of fetched packages from repositories") + cleanupFlagSet.BoolVar(&cleanupFetchedPackages, "fetched-pkgs", false, "Perform a cleanup of fetched packages from databases") cleanupFlagSet.Usage = printHelp // File flags fileFlagSet := flag.NewFlagSet("Remove flags", flag.ExitOnError) diff --git a/src/bpmlib/config.go b/src/bpmlib/config.go index fbf5fda..0c24e57 100644 --- a/src/bpmlib/config.go +++ b/src/bpmlib/config.go @@ -6,10 +6,10 @@ import ( ) type BPMConfigStruct struct { - IgnorePackages []string `yaml:"ignore_packages"` - PrivilegeEscalatorCmd string `yaml:"privilege_escalator_cmd"` - CompilationEnvironment []string `yaml:"compilation_env"` - Repositories []*Repository `yaml:"repositories"` + IgnorePackages []string `yaml:"ignore_packages"` + PrivilegeEscalatorCmd string `yaml:"privilege_escalator_cmd"` + CompilationEnvironment []string `yaml:"compilation_env"` + Databases []*BPMDatabase `yaml:"databases"` } var BPMConfig BPMConfigStruct @@ -30,9 +30,9 @@ func ReadConfig() (err error) { return err } - for i := len(BPMConfig.Repositories) - 1; i >= 0; i-- { - if BPMConfig.Repositories[i].Disabled != nil && *BPMConfig.Repositories[i].Disabled { - BPMConfig.Repositories = append(BPMConfig.Repositories[:i], BPMConfig.Repositories[i+1:]...) + for i := len(BPMConfig.Databases) - 1; i >= 0; i-- { + if BPMConfig.Databases[i].Disabled != nil && *BPMConfig.Databases[i].Disabled { + BPMConfig.Databases = append(BPMConfig.Databases[:i], BPMConfig.Databases[i+1:]...) } } diff --git a/src/bpmlib/repositories.go b/src/bpmlib/databases.go similarity index 55% rename from src/bpmlib/repositories.go rename to src/bpmlib/databases.go index cafc6b1..6b14195 100644 --- a/src/bpmlib/repositories.go +++ b/src/bpmlib/databases.go @@ -12,41 +12,41 @@ import ( "strings" ) -type Repository struct { +type BPMDatabase struct { Name string `yaml:"name"` Source string `yaml:"source"` Disabled *bool `yaml:"disabled"` - Entries map[string]*RepositoryEntry + Entries map[string]*BPMDatabaseEntry VirtualPackages map[string][]string } -type RepositoryEntry struct { +type BPMDatabaseEntry struct { Info *PackageInfo `yaml:"info"` Download string `yaml:"download"` DownloadSize uint64 `yaml:"download_size"` InstalledSize uint64 `yaml:"installed_size"` - Repository *Repository + Database *BPMDatabase } -func (repo *Repository) ContainsPackage(pkg string) bool { - _, ok := repo.Entries[pkg] +func (db *BPMDatabase) ContainsPackage(pkg string) bool { + _, ok := db.Entries[pkg] return ok } -func (repo *Repository) ReadLocalDatabase() error { - repoFile := "/var/lib/bpm/repositories/" + repo.Name + ".bpmdb" - if _, err := os.Stat(repoFile); err != nil { +func (db *BPMDatabase) ReadLocalDatabase() error { + dbFile := "/var/lib/bpm/databases/" + db.Name + ".bpmdb" + if _, err := os.Stat(dbFile); err != nil { return nil } - bytes, err := os.ReadFile(repoFile) + bytes, err := os.ReadFile(dbFile) if err != nil { return err } data := string(bytes) for _, b := range strings.Split(data, "---") { - entry := RepositoryEntry{ + entry := BPMDatabaseEntry{ Info: &PackageInfo{ Name: "", Description: "", @@ -66,14 +66,14 @@ func (repo *Repository) ReadLocalDatabase() error { Download: "", DownloadSize: 0, InstalledSize: 0, - Repository: repo, + Database: db, } err := yaml.Unmarshal([]byte(b), &entry) if err != nil { return err } - // Create repository entries + // Create database entries if entry.Info.IsSplitPackage() { for _, splitPkg := range entry.Info.SplitPackages { // Turn split package into json data @@ -100,26 +100,26 @@ func (repo *Repository) ReadLocalDatabase() error { splitPkgClone.Url = entry.Info.Url // Create entry for split package - repo.Entries[splitPkg.Name] = &RepositoryEntry{ + db.Entries[splitPkg.Name] = &BPMDatabaseEntry{ Info: &splitPkgClone, Download: entry.Download, DownloadSize: entry.DownloadSize, InstalledSize: 0, - Repository: repo, + Database: db, } - // Add virtual packages to repository + // Add virtual packages to database for _, p := range splitPkg.Provides { - repo.VirtualPackages[p] = append(repo.VirtualPackages[p], splitPkg.Name) + db.VirtualPackages[p] = append(db.VirtualPackages[p], splitPkg.Name) } } } else { // Create entry for package - repo.Entries[entry.Info.Name] = &entry + db.Entries[entry.Info.Name] = &entry - // Add virtual packages to repository + // Add virtual packages to database for _, p := range entry.Info.Provides { - repo.VirtualPackages[p] = append(repo.VirtualPackages[p], entry.Info.Name) + db.VirtualPackages[p] = append(db.VirtualPackages[p], entry.Info.Name) } } @@ -128,11 +128,11 @@ func (repo *Repository) ReadLocalDatabase() error { return nil } -func (repo *Repository) SyncLocalDatabase() error { - repoFile := "/var/lib/bpm/repositories/" + repo.Name + ".bpmdb" +func (db *BPMDatabase) SyncLocalDatabaseFile() error { + dbFile := "/var/lib/bpm/databases/" + db.Name + ".bpmdb" // Get URL to database - u, err := url.JoinPath(repo.Source, "database.bpmdb") + u, err := url.JoinPath(db.Source, "database.bpmdb") if err != nil { return err } @@ -147,20 +147,20 @@ func (repo *Repository) SyncLocalDatabase() error { // Load data into byte buffer buffer, err := io.ReadAll(resp.Body) - // Unmarshal data to ensure it is a valid BPM repository - err = yaml.Unmarshal(buffer, &Repository{}) + // Unmarshal data to ensure it is a valid BPM database + err = yaml.Unmarshal(buffer, &BPMDatabase{}) if err != nil { - return fmt.Errorf("could not decode repository: %s", err) + return fmt.Errorf("could not decode database: %s", err) } - // Create parent directories to repository file - err = os.MkdirAll(path.Dir(repoFile), 0755) + // Create parent directories to database file + err = os.MkdirAll(path.Dir(dbFile), 0755) if err != nil { return err } - // Create file and save repository data - out, err := os.Create(repoFile) + // Create file and save database data + out, err := os.Create(dbFile) if err != nil { return err } @@ -171,14 +171,14 @@ func (repo *Repository) SyncLocalDatabase() error { return nil } -func ReadLocalDatabases() (err error) { - for _, repo := range BPMConfig.Repositories { +func ReadLocalDatabaseFiles() (err error) { + for _, db := range BPMConfig.Databases { // Initialize struct values - repo.Entries = make(map[string]*RepositoryEntry) - repo.VirtualPackages = make(map[string][]string) + db.Entries = make(map[string]*BPMDatabaseEntry) + db.VirtualPackages = make(map[string][]string) // Read database - err = repo.ReadLocalDatabase() + err = db.ReadLocalDatabase() if err != nil { return err } @@ -187,47 +187,47 @@ func ReadLocalDatabases() (err error) { return nil } -func GetRepository(name string) *Repository { - for _, repo := range BPMConfig.Repositories { - if repo.Name == name { - return repo +func GetDatabase(name string) *BPMDatabase { + for _, db := range BPMConfig.Databases { + if db.Name == name { + return db } } return nil } -func GetRepositoryEntry(str string) (*RepositoryEntry, *Repository, error) { +func GetDatabaseEntry(str string) (*BPMDatabaseEntry, *BPMDatabase, error) { split := strings.Split(str, "/") if len(split) == 1 { pkgName := strings.TrimSpace(split[0]) if pkgName == "" { - return nil, nil, errors.New("could not find repository entry for this package") + return nil, nil, errors.New("could not find database entry for this package") } - for _, repo := range BPMConfig.Repositories { - if repo.ContainsPackage(pkgName) { - return repo.Entries[pkgName], repo, nil + for _, db := range BPMConfig.Databases { + if db.ContainsPackage(pkgName) { + return db.Entries[pkgName], db, nil } } - return nil, nil, errors.New("could not find repository entry for this package") + return nil, nil, errors.New("could not find database entry for this package") } else if len(split) == 2 { - repoName := strings.TrimSpace(split[0]) + dbName := strings.TrimSpace(split[0]) pkgName := strings.TrimSpace(split[1]) - if repoName == "" || pkgName == "" { - return nil, nil, errors.New("could not find repository entry for this package") + if dbName == "" || pkgName == "" { + return nil, nil, errors.New("could not find database entry for this package") } - repo := GetRepository(repoName) - if repo == nil || !repo.ContainsPackage(pkgName) { - return nil, nil, errors.New("could not find repository entry for this package") + db := GetDatabase(dbName) + if db == nil || !db.ContainsPackage(pkgName) { + return nil, nil, errors.New("could not find database entry for this package") } - return repo.Entries[pkgName], repo, nil + return db.Entries[pkgName], db, nil } else { - return nil, nil, errors.New("could not find repository entry for this package") + return nil, nil, errors.New("could not find database entry for this package") } } -func FindReplacement(pkg string) *RepositoryEntry { - for _, repo := range BPMConfig.Repositories { - for _, entry := range repo.Entries { +func FindReplacement(pkg string) *BPMDatabaseEntry { + for _, db := range BPMConfig.Databases { + for _, entry := range db.Entries { for _, replaced := range entry.Info.Replaces { if replaced == pkg { return entry @@ -239,11 +239,11 @@ func FindReplacement(pkg string) *RepositoryEntry { return nil } -func ResolveVirtualPackage(vpkg string) *RepositoryEntry { - for _, repo := range BPMConfig.Repositories { - if v, ok := repo.VirtualPackages[vpkg]; ok { +func ResolveVirtualPackage(vpkg string) *BPMDatabaseEntry { + for _, db := range BPMConfig.Databases { + if v, ok := db.VirtualPackages[vpkg]; ok { for _, pkg := range v { - return repo.Entries[pkg] + return db.Entries[pkg] } } } @@ -251,12 +251,12 @@ func ResolveVirtualPackage(vpkg string) *RepositoryEntry { return nil } -func (repo *Repository) FetchPackage(pkg string) (string, error) { - if !repo.ContainsPackage(pkg) { +func (db *BPMDatabase) FetchPackage(pkg string) (string, error) { + if !db.ContainsPackage(pkg) { return "", errors.New("could not fetch package '" + pkg + "'") } - entry := repo.Entries[pkg] - URL, err := url.JoinPath(repo.Source, entry.Download) + entry := db.Entries[pkg] + URL, err := url.JoinPath(db.Source, entry.Download) if err != nil { return "", err } diff --git a/src/bpmlib/dependencies.go b/src/bpmlib/dependencies.go index d71a105..f349903 100644 --- a/src/bpmlib/dependencies.go +++ b/src/bpmlib/dependencies.go @@ -94,8 +94,8 @@ func resolvePackageDependenciesFromDatabase(resolved, unresolved *[]string, pkgI continue } var err error - var entry *RepositoryEntry - entry, _, err = GetRepositoryEntry(depend) + var entry *BPMDatabaseEntry + entry, _, err = GetDatabaseEntry(depend) if err != nil { if entry = ResolveVirtualPackage(depend); entry == nil { if !slices.Contains(*unresolved, depend) { diff --git a/src/bpmlib/errors.go b/src/bpmlib/errors.go index b9d193e..618251a 100644 --- a/src/bpmlib/errors.go +++ b/src/bpmlib/errors.go @@ -10,7 +10,7 @@ type PackageNotFoundErr struct { } func (e PackageNotFoundErr) Error() string { - return "The following packages were not found in any repositories: " + strings.Join(e.packages, ", ") + return "The following packages were not found in any databases: " + strings.Join(e.packages, ", ") } type DependencyNotFoundErr struct { @@ -18,7 +18,7 @@ type DependencyNotFoundErr struct { } func (e DependencyNotFoundErr) Error() string { - return "The following dependencies were not found in any repositories: " + strings.Join(e.dependencies, ", ") + return "The following dependencies were not found in any databases: " + strings.Join(e.dependencies, ", ") } type PackageConflictErr struct { diff --git a/src/bpmlib/general.go b/src/bpmlib/general.go index fd15a55..8e28e05 100644 --- a/src/bpmlib/general.go +++ b/src/bpmlib/general.go @@ -17,7 +17,7 @@ const ( ReinstallMethodAll ReinstallMethod = iota ) -// InstallPackages installs the specified packages into the given root directory by fetching them from repositories or directly from local bpm archives +// InstallPackages installs the specified packages into the given root directory by fetching them from databases or directly from local bpm archives func InstallPackages(rootDir string, installationReason InstallationReason, reinstallMethod ReinstallMethod, installOptionalDependencies, forceInstallation, verbose bool, packages ...string) (operation *BPMOperation, err error) { // Setup operation struct operation = &BPMOperation{ @@ -64,12 +64,12 @@ func InstallPackages(rootDir string, installationReason InstallationReason, rein BpmPackage: bpmpkg, }) } else { - var entry *RepositoryEntry + var entry *BPMDatabaseEntry - if e, _, err := GetRepositoryEntry(pkg); err == nil { + if e, _, err := GetDatabaseEntry(pkg); err == nil { entry = e } else if isVirtual, p := IsVirtualPackage(pkg, rootDir); isVirtual { - entry, _, err = GetRepositoryEntry(p) + entry, _, err = GetDatabaseEntry(p) if err != nil { pkgsNotFound = append(pkgsNotFound, pkg) continue @@ -85,8 +85,8 @@ func InstallPackages(rootDir string, installationReason InstallationReason, rein } operation.AppendAction(&FetchPackageAction{ - IsDependency: false, - RepositoryEntry: entry, + IsDependency: false, + DatabaseEntry: entry, }) } } @@ -272,7 +272,7 @@ func CleanupCache(rootDir string, cleanupCompilationFiles, cleanupCompiledPackag // UpdatePackages fetches the newest versions of all installed packages from func UpdatePackages(rootDir string, syncDatabase bool, installOptionalDependencies, forceInstallation, verbose bool) (operation *BPMOperation, err error) { - // Sync repositories + // Sync databases if syncDatabase { err := SyncDatabase(verbose) if err != nil { @@ -287,7 +287,7 @@ func UpdatePackages(rootDir string, syncDatabase bool, installOptionalDependenci if err != nil { return nil, fmt.Errorf("could not read BPM config: %s", err) } - err = ReadLocalDatabases() + err = ReadLocalDatabaseFiles() if err != nil { return nil, fmt.Errorf("could not read local databases: %s", err) } @@ -313,11 +313,11 @@ func UpdatePackages(rootDir string, syncDatabase bool, installOptionalDependenci if slices.Contains(BPMConfig.IgnorePackages, pkg) { continue } - var entry *RepositoryEntry + var entry *BPMDatabaseEntry // Check if installed package can be replaced and install that instead if e := FindReplacement(pkg); e != nil { entry = e - } else if entry, _, err = GetRepositoryEntry(pkg); err != nil { + } else if entry, _, err = GetDatabaseEntry(pkg); err != nil { continue } @@ -328,8 +328,8 @@ func UpdatePackages(rootDir string, syncDatabase bool, installOptionalDependenci comparison := ComparePackageVersions(*entry.Info, *installedInfo) if comparison > 0 { operation.AppendAction(&FetchPackageAction{ - IsDependency: false, - RepositoryEntry: entry, + IsDependency: false, + DatabaseEntry: entry, }) } } @@ -355,12 +355,12 @@ func UpdatePackages(rootDir string, syncDatabase bool, installOptionalDependenci // SyncDatabase syncs all databases declared in /etc/bpm.conf func SyncDatabase(verbose bool) (err error) { - for _, repo := range BPMConfig.Repositories { + for _, db := range BPMConfig.Databases { if verbose { - fmt.Printf("Fetching package database for repository (%s)...\n", repo.Name) + fmt.Printf("Fetching package database file for database (%s)...\n", db.Name) } - err := repo.SyncLocalDatabase() + err := db.SyncLocalDatabaseFile() if err != nil { return err } diff --git a/src/bpmlib/operations.go b/src/bpmlib/operations.go index 0a50e41..de03e30 100644 --- a/src/bpmlib/operations.go +++ b/src/bpmlib/operations.go @@ -26,7 +26,7 @@ func (operation *BPMOperation) ActionsContainPackage(pkg string) bool { return true } } else if action.GetActionType() == "fetch" { - if action.(*FetchPackageAction).RepositoryEntry.Info.Name == pkg { + if action.(*FetchPackageAction).DatabaseEntry.Info.Name == pkg { return true } } else if action.GetActionType() == "remove" { @@ -58,7 +58,7 @@ func (operation *BPMOperation) InsertActionAt(index int, action OperationAction) operation.Changes[pkgInfo.Name] = "upgrade" } } else if action.GetActionType() == "fetch" { - pkgInfo := action.(*FetchPackageAction).RepositoryEntry.Info + pkgInfo := action.(*FetchPackageAction).DatabaseEntry.Info if !IsPackageInstalled(pkgInfo.Name, operation.RootDir) { operation.Changes[pkgInfo.Name] = "install" } else { @@ -77,7 +77,7 @@ func (operation *BPMOperation) RemoveAction(pkg, actionType string) { if a.GetActionType() == "install" { return a.(*InstallPackageAction).BpmPackage.PkgInfo.Name == pkg } else if a.GetActionType() == "fetch" { - return a.(*FetchPackageAction).RepositoryEntry.Info.Name == pkg + return a.(*FetchPackageAction).DatabaseEntry.Info.Name == pkg } else if a.GetActionType() == "remove" { return a.(*RemovePackageAction).BpmPackage.PkgInfo.Name == pkg } @@ -89,7 +89,7 @@ func (operation *BPMOperation) GetTotalDownloadSize() uint64 { var ret uint64 = 0 for _, action := range operation.Actions { if action.GetActionType() == "fetch" { - ret += action.(*FetchPackageAction).RepositoryEntry.DownloadSize + ret += action.(*FetchPackageAction).DatabaseEntry.DownloadSize } } return ret @@ -101,7 +101,7 @@ func (operation *BPMOperation) GetTotalInstalledSize() uint64 { if action.GetActionType() == "install" { ret += action.(*InstallPackageAction).BpmPackage.GetInstalledSize() } else if action.GetActionType() == "fetch" { - ret += action.(*FetchPackageAction).RepositoryEntry.InstalledSize + ret += action.(*FetchPackageAction).DatabaseEntry.InstalledSize } } return ret @@ -116,7 +116,7 @@ func (operation *BPMOperation) GetFinalActionSize(rootDir string) int64 { ret -= int64(GetPackage(action.(*InstallPackageAction).BpmPackage.PkgInfo.Name, rootDir).GetInstalledSize()) } } else if action.GetActionType() == "fetch" { - ret += int64(action.(*FetchPackageAction).RepositoryEntry.InstalledSize) + ret += int64(action.(*FetchPackageAction).DatabaseEntry.InstalledSize) } else if action.GetActionType() == "remove" { ret -= int64(action.(*RemovePackageAction).BpmPackage.GetInstalledSize()) } @@ -133,7 +133,7 @@ func (operation *BPMOperation) ResolveDependencies(reinstallDependencies, instal pkgInfo = action.BpmPackage.PkgInfo } else if value.GetActionType() == "fetch" { action := value.(*FetchPackageAction) - pkgInfo = action.RepositoryEntry.Info + pkgInfo = action.DatabaseEntry.Info } else { pos++ continue @@ -148,13 +148,13 @@ func (operation *BPMOperation) ResolveDependencies(reinstallDependencies, instal if !reinstallDependencies && IsPackageInstalled(depend, operation.RootDir) { continue } - entry, _, err := GetRepositoryEntry(depend) + entry, _, err := GetDatabaseEntry(depend) if err != nil { - return errors.New("could not get repository entry for package (" + depend + ")") + return errors.New("could not get database entry for package (" + depend + ")") } operation.InsertActionAt(pos, &FetchPackageAction{ - IsDependency: true, - RepositoryEntry: entry, + IsDependency: true, + DatabaseEntry: entry, }) pos++ } @@ -263,7 +263,7 @@ func (operation *BPMOperation) ReplaceObsoletePackages() { } else if value.GetActionType() == "fetch" { action := value.(*FetchPackageAction) - pkgInfo = action.RepositoryEntry.Info + pkgInfo = action.DatabaseEntry.Info } else { continue } @@ -301,7 +301,7 @@ func (operation *BPMOperation) CheckForConflicts() (map[string][]string, error) allPackages = append(allPackages, pkgInfo) } else if value.GetActionType() == "fetch" { action := value.(*FetchPackageAction) - pkgInfo := action.RepositoryEntry.Info + pkgInfo := action.DatabaseEntry.Info allPackages = append(allPackages, pkgInfo) } else if value.GetActionType() == "remove" { action := value.(*RemovePackageAction) @@ -342,7 +342,7 @@ func (operation *BPMOperation) ShowOperationSummary() { pkgInfo = pkgInfo.GetSplitPackageInfo(value.(*InstallPackageAction).SplitPackageToInstall) } } else if value.GetActionType() == "fetch" { - pkgInfo = value.(*FetchPackageAction).RepositoryEntry.Info + pkgInfo = value.(*FetchPackageAction).DatabaseEntry.Info } else { pkgInfo = value.(*RemovePackageAction).BpmPackage.PkgInfo fmt.Printf("%s: %s (Remove)\n", pkgInfo.Name, pkgInfo.GetFullVersion()) @@ -414,11 +414,11 @@ func (operation *BPMOperation) RunHooks(verbose bool) error { } func (operation *BPMOperation) Execute(verbose, force bool) (err error) { - // Fetch packages from repositories + // Fetch packages from databases if slices.ContainsFunc(operation.Actions, func(action OperationAction) bool { return action.GetActionType() == "fetch" }) { - fmt.Println("Fetching packages from available repositories...") + fmt.Println("Fetching packages from available databases...") // Create map for fetched packages fetchedPackages := make(map[string]string) @@ -428,16 +428,16 @@ func (operation *BPMOperation) Execute(verbose, force bool) (err error) { continue } - // Get repository entry - entry := action.(*FetchPackageAction).RepositoryEntry + // Get database entry + entry := action.(*FetchPackageAction).DatabaseEntry // Create bpmpkg variable var bpmpkg *BPMPackage // Check if package has already been fetched from download link if _, ok := fetchedPackages[entry.Download]; !ok { - // Fetch package from repository - fetchedPackage, err := entry.Repository.FetchPackage(entry.Info.Name) + // Fetch package from database + fetchedPackage, err := entry.Database.FetchPackage(entry.Info.Name) if err != nil { return errors.New(fmt.Sprintf("could not fetch package (%s): %s\n", entry.Info.Name, err)) } @@ -596,8 +596,8 @@ func (action *InstallPackageAction) GetActionType() string { } type FetchPackageAction struct { - IsDependency bool - RepositoryEntry *RepositoryEntry + IsDependency bool + DatabaseEntry *BPMDatabaseEntry } func (action *FetchPackageAction) GetActionType() string {