diff --git a/README.md b/README.md index 7b48db8..61cfbf6 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ your own risk. search Search available apps show Show detailed info about an app devices List connected devices + download Download an app install Install an app uninstall Uninstall an app diff --git a/cmd/fdroidcl/download.go b/cmd/fdroidcl/download.go new file mode 100644 index 0000000..2f0ec23 --- /dev/null +++ b/cmd/fdroidcl/download.go @@ -0,0 +1,40 @@ +// Copyright (c) 2015, Daniel Martí +// See LICENSE for licensing information + +package main + +import ( + "fmt" + "log" + "path/filepath" +) + +var cmdDownload = &Command{ + UsageLine: "download ", + Short: "Download an app", +} + +func init() { + cmdDownload.Run = runDownload +} + +func runDownload(args []string) { + if len(args) < 1 { + log.Fatalf("No package names given") + } + apps := findApps(args) + for _, app := range apps { + apk := app.CurApk + url := fmt.Sprintf("%s/%s", apk.Repo.URL, 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) + } + fmt.Printf("APK available in %s\n", path) + } +} + +func apkPath(apkname string) string { + apksDir := subdir(mustCache(), "apks") + return filepath.Join(apksDir, apkname) +} diff --git a/cmd/fdroidcl/install.go b/cmd/fdroidcl/install.go index 9197d82..7a6dd4b 100644 --- a/cmd/fdroidcl/install.go +++ b/cmd/fdroidcl/install.go @@ -6,7 +6,6 @@ package main import ( "fmt" "log" - "path/filepath" ) var cmdInstall = &Command{ @@ -44,8 +43,3 @@ func runInstall(args []string) { fmt.Println("done") } } - -func apkPath(apkname string) string { - apksDir := subdir(mustCache(), "apks") - return filepath.Join(apksDir, apkname) -} diff --git a/cmd/fdroidcl/main.go b/cmd/fdroidcl/main.go index 16d956c..172674b 100644 --- a/cmd/fdroidcl/main.go +++ b/cmd/fdroidcl/main.go @@ -152,6 +152,7 @@ var commands = []*Command{ cmdSearch, cmdShow, cmdDevices, + cmdDownload, cmdInstall, cmdUninstall, }