From c8a575053f71c22807bda50535ddf6629b867b5f Mon Sep 17 00:00:00 2001 From: Igor Talankin Date: Tue, 11 Feb 2020 18:49:31 +0500 Subject: [PATCH] Added --adbc-version option --- README.md | 13 +++++++++++++ adbc.c | 19 +++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/README.md b/README.md index ed85271..c92cc7d 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,19 @@ $ adb -s $SELECTED_DEVICE shell input text password $ adb -s $SELECTED_DEVICE shell input keyevent ENTER ``` +## Print version + +Run `adbc` with `--adbc-version` option: + +```sh +$ adbc --adbc-version +adbc version: 1.0.0 +Using adb path: /home/user/android-sdk/platform-tools/adb +Android Debug Bridge version 1.0.41 +Version 29.0.5-5949299 +Installed as /home/user/android-sdk/platform-tools/adb +``` + # Building `adbc` requires `ncurses` library. diff --git a/adbc.c b/adbc.c index 8df2181..8483ca1 100644 --- a/adbc.c +++ b/adbc.c @@ -3,6 +3,8 @@ #include #include +#define VERSION "1.0.0" + #define MAX_LINE_LEN 512 #define ADB_LOCATION "/platform-tools/adb" @@ -19,6 +21,7 @@ struct device_list { char* ADB = NULL; +int print_version(); char* get_sdk_path(); void read_adb_path(); char* get_adb_command(char* command); @@ -30,6 +33,10 @@ int exec_command(char* id, int argc, char* argv[]); int main(int argc, char* argv[]) { read_adb_path(); + if (argc == 2 && strcmp(argv[1], "--adbc-version") == 0) { + return print_version(); + } + struct device_list devices = get_devices(); if (devices.count == 0) { @@ -47,6 +54,18 @@ int main(int argc, char* argv[]) { return exec_command(chosen->id, argc, argv); } +int print_version() { + printf("adbc version: %s\n", VERSION); + if (strcmp(ADB, "adb") == 0) { + printf("Android SDK not found\n"); + return 1; + } else { + printf("Using adb path: %s\n", ADB); + char* adb_version = get_adb_command("--version"); + return system(adb_version); + } +} + char* get_sdk_path() { char* android_home = getenv("ANDROID_HOME"); if (android_home != NULL && strlen(android_home) > 0) {