Browse Source

Reorganize app dir code

pull/8/head
Daniel Martí 11 years ago
parent
commit
ce3a45a78c
  1. 20
      cmd/fdroidcl/install.go
  2. 33
      cmd/fdroidcl/main.go

20
cmd/fdroidcl/install.go

@ -7,8 +7,6 @@ import (
"fmt"
"log"
"path/filepath"
"github.com/mvdan/basedir"
)
var cmdInstall = &Command{
@ -27,11 +25,10 @@ func runInstall(args []string) {
device := mustOneDevice()
apps := findApps(args)
paths := make([]string, len(apps))
apksDir := apksCacheDir()
for i, app := range apps {
apk := app.CurApk
url := fmt.Sprintf("%s/%s", repoURL, apk.ApkName)
path := filepath.Join(apksDir, apk.ApkName)
path := apkPath(apk.ApkName)
if err := downloadEtag(url, path, apk.Hash.Data); err != nil {
log.Fatalf("Could not download '%s': %v", app.ID, err)
}
@ -48,18 +45,7 @@ func runInstall(args []string) {
}
}
func apksCacheDir() string {
cache, err := basedir.Cache()
if err != nil {
log.Fatalf("Could not determine cache dir: %v", err)
}
return appSubdir(cache, "apks")
}
func apkPath(apkname string) string {
cache, err := basedir.Cache()
if err != nil {
log.Fatalf("Could not determine cache dir: %v", err)
}
return filepath.Join(appSubdir(cache, "apks"), apkname)
apksDir := subdir(mustCache(), "apks")
return filepath.Join(apksDir, apkname)
}

33
cmd/fdroidcl/main.go

@ -8,7 +8,10 @@ import (
"fmt"
"log"
"os"
"path/filepath"
"strings"
"github.com/mvdan/basedir"
)
const (
@ -18,6 +21,36 @@ const (
repoURL = "https://f-droid.org/repo"
)
func subdir(dir, name string) string {
p := filepath.Join(dir, name)
if err := os.MkdirAll(p, 0755); err != nil {
log.Fatalf("Could not create dir '%s': %v", p, err)
}
return p
}
func mustCache() string {
dir, err := basedir.Cache()
if err != nil {
log.Fatalf("Could not determine cache dir: %v", err)
}
return subdir(dir, cmdName)
}
func mustConfig() string {
dir, err := basedir.Config()
if err != nil {
log.Fatalf("Could not determine config dir: %v", err)
}
return subdir(dir, cmdName)
}
var config struct {
Repos map[string]struct {
URL string `json:"url"`
} `json:"repos"`
}
// A Command is an implementation of a go command
// like go build or go fix.
type Command struct {

Loading…
Cancel
Save