enhance package database schema and configuration; add dependencies
This commit is contained in:
@@ -51,7 +51,7 @@ func init() {
|
|||||||
log.Fatal(db)
|
log.Fatal(db)
|
||||||
}
|
}
|
||||||
defer db.Close()
|
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 {
|
} else {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,6 +36,8 @@ func DefaultConfigTOML() (*ConfigTOML, error) {
|
|||||||
config.Config.Cache_d = consts.DefaultCache_d
|
config.Config.Cache_d = consts.DefaultCache_d
|
||||||
config.Config.Data_d = consts.DefaultData_d
|
config.Config.Data_d = consts.DefaultData_d
|
||||||
config.Config.HttpPort = consts.DefaultHttpPort
|
config.Config.HttpPort = consts.DefaultHttpPort
|
||||||
|
config.Config.Bin_d = consts.DefaultBin_d
|
||||||
|
config.Config.StorePackages = true
|
||||||
|
|
||||||
return &config, nil
|
return &config, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,5 +22,6 @@ type ConfigTOML struct {
|
|||||||
Cache_d string `toml:"cache_d"`
|
Cache_d string `toml:"cache_d"`
|
||||||
Data_d string `toml:"data_d"`
|
Data_d string `toml:"data_d"`
|
||||||
Bin_d string `toml:"bin_d"`
|
Bin_d string `toml:"bin_d"`
|
||||||
|
StorePackages bool `toml:"store_packages"`
|
||||||
} `toml:"Config"`
|
} `toml:"Config"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
CREATE TABLE packages(
|
CREATE TABLE packages(
|
||||||
query_name TEXT NOT NULL,
|
query_name TEXT NOT NULL,
|
||||||
image_url TEXT,
|
image_url TEXT NOT NULL,
|
||||||
name TEXT NOT NULL UNIQUE PRIMARY KEY,
|
name TEXT NOT NULL UNIQUE PRIMARY KEY,
|
||||||
version TEXT NOT NULL,
|
version TEXT NOT NULL,
|
||||||
public_key BLOB NOT NULL,
|
public_key BLOB NOT NULL,
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ const (
|
|||||||
DefaultLinux_d = "/etc/packets"
|
DefaultLinux_d = "/etc/packets"
|
||||||
DefaultCache_d = "/var/cache/packets"
|
DefaultCache_d = "/var/cache/packets"
|
||||||
DefaultHttpPort = 9123
|
DefaultHttpPort = 9123
|
||||||
|
DefaultBin_d = "/usr/local/bin"
|
||||||
DefaultData_d = "/opt/packets"
|
DefaultData_d = "/opt/packets"
|
||||||
LANDeadline = 2 * time.Second
|
LANDeadline = 2 * time.Second
|
||||||
IndexDB = "/etc/packets/index.db"
|
IndexDB = "/etc/packets/index.db"
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ type Package struct {
|
|||||||
Arch string
|
Arch string
|
||||||
Filename string
|
Filename string
|
||||||
Size int64
|
Size int64
|
||||||
|
Dependencies string
|
||||||
|
|
||||||
Signature []byte
|
Signature []byte
|
||||||
PublicKey ed25519.PublicKey
|
PublicKey ed25519.PublicKey
|
||||||
@@ -196,13 +197,30 @@ func (p *Package) Write() (string, error) {
|
|||||||
return filepath.Join(consts.DefaultCache_d, p.Filename), nil
|
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)
|
db, err := sql.Open("sqlite", consts.InstalledDB)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer db.Close()
|
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
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ func GetPackage(name string) (utils.Package, error) {
|
|||||||
defer db.Close()
|
defer db.Close()
|
||||||
|
|
||||||
var packageUrl string
|
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(
|
Scan(
|
||||||
&this.QueryName,
|
&this.QueryName,
|
||||||
&this.Version,
|
&this.Version,
|
||||||
@@ -161,6 +161,7 @@ func GetPackage(name string) (utils.Package, error) {
|
|||||||
&this.Family,
|
&this.Family,
|
||||||
&this.Serial,
|
&this.Serial,
|
||||||
&this.Size,
|
&this.Size,
|
||||||
|
&this.Dependencies,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return utils.Package{}, err
|
return utils.Package{}, err
|
||||||
|
|||||||
Reference in New Issue
Block a user