enhance package database schema and configuration; add dependencies
This commit is contained in:
@@ -51,7 +51,7 @@ func init() {
|
||||
log.Fatal(db)
|
||||
}
|
||||
defer db.Close()
|
||||
db.Exec("CREATE TABLE IF NOT EXISTS packages (name TEXT NOT NULL UNIQUE PRIMARY KEY, version TEXT NOT NULL, dependencies TEXT NOT NULL DEFAULT '', family TEXT NOT NULL, serial INTEGER, package_d TEXT NOT NULL)")
|
||||
db.Exec("CREATE TABLE IF NOT EXISTS packages (query_name TEXT NOT NULL,name TEXT NOT NULL UNIQUE PRIMARY KEY, version TEXT NOT NULL, dependencies TEXT NOT NULL DEFAULT '', description TEXT NOT NULL, family TEXT NOT NULL, serial INTEGER NOT NULL UNIQUE, package_d TEXT NOT NULL, filename TEXT NOT NULL, os TEXT NOT NULL, arch TEXT NOT NULL, in_cache INTEGER NOT NULL DEFAULT 1, serial INTEGER NOT NULL, image_url TEXT NOT NULL)")
|
||||
} else {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -36,6 +36,8 @@ func DefaultConfigTOML() (*ConfigTOML, error) {
|
||||
config.Config.Cache_d = consts.DefaultCache_d
|
||||
config.Config.Data_d = consts.DefaultData_d
|
||||
config.Config.HttpPort = consts.DefaultHttpPort
|
||||
config.Config.Bin_d = consts.DefaultBin_d
|
||||
config.Config.StorePackages = true
|
||||
|
||||
return &config, nil
|
||||
}
|
||||
|
||||
@@ -22,5 +22,6 @@ type ConfigTOML struct {
|
||||
Cache_d string `toml:"cache_d"`
|
||||
Data_d string `toml:"data_d"`
|
||||
Bin_d string `toml:"bin_d"`
|
||||
StorePackages bool `toml:"store_packages"`
|
||||
} `toml:"Config"`
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
CREATE TABLE packages(
|
||||
query_name TEXT NOT NULL,
|
||||
image_url TEXT,
|
||||
image_url TEXT NOT NULL,
|
||||
name TEXT NOT NULL UNIQUE PRIMARY KEY,
|
||||
version TEXT NOT NULL,
|
||||
public_key BLOB NOT NULL,
|
||||
|
||||
@@ -6,6 +6,7 @@ const (
|
||||
DefaultLinux_d = "/etc/packets"
|
||||
DefaultCache_d = "/var/cache/packets"
|
||||
DefaultHttpPort = 9123
|
||||
DefaultBin_d = "/usr/local/bin"
|
||||
DefaultData_d = "/opt/packets"
|
||||
LANDeadline = 2 * time.Second
|
||||
IndexDB = "/etc/packets/index.db"
|
||||
|
||||
@@ -29,6 +29,7 @@ type Package struct {
|
||||
Arch string
|
||||
Filename string
|
||||
Size int64
|
||||
Dependencies string
|
||||
|
||||
Signature []byte
|
||||
PublicKey ed25519.PublicKey
|
||||
@@ -196,13 +197,30 @@ func (p *Package) Write() (string, error) {
|
||||
return filepath.Join(consts.DefaultCache_d, p.Filename), nil
|
||||
}
|
||||
|
||||
func (p *Package) AddToInstalledDB() error {
|
||||
func (p *Package) AddToInstalledDB(inCache int, packagePath string) error {
|
||||
db, err := sql.Open("sqlite", consts.InstalledDB)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
_, err = db.Exec("INSERT INTO packages (name, version, dependencies)")
|
||||
_, err = db.Exec(`
|
||||
INSERT INTO packages (
|
||||
query_name, name, version, dependencies, description,
|
||||
family, serial, package_d, filename, os, arch, in_cache
|
||||
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
||||
p.QueryName,
|
||||
p.Manifest.Info.Name,
|
||||
p.Version,
|
||||
p.Dependencies,
|
||||
p.Description,
|
||||
p.Family,
|
||||
p.Serial,
|
||||
packagePath,
|
||||
p.Filename,
|
||||
p.OS,
|
||||
p.Arch,
|
||||
inCache,
|
||||
)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -145,7 +145,7 @@ func GetPackage(name string) (utils.Package, error) {
|
||||
defer db.Close()
|
||||
|
||||
var packageUrl string
|
||||
err = db.QueryRow("SELECT query_name, version, package_url, image_url, description, author, author_verified, os, arch, signature, public_key, family, serial, size FROM packages WHERE name = ?", name).
|
||||
err = db.QueryRow("SELECT query_name, version, package_url, image_url, description, author, author_verified, os, arch, signature, public_key, family, serial, size, dependencies FROM packages WHERE name = ?", name).
|
||||
Scan(
|
||||
&this.QueryName,
|
||||
&this.Version,
|
||||
@@ -161,6 +161,7 @@ func GetPackage(name string) (utils.Package, error) {
|
||||
&this.Family,
|
||||
&this.Serial,
|
||||
&this.Size,
|
||||
&this.Dependencies,
|
||||
)
|
||||
if err != nil {
|
||||
return utils.Package{}, err
|
||||
|
||||
Reference in New Issue
Block a user