apt завершения не работают для двойного -тире (--)опции

Инструменты Gnome Keyring(Я сделал несколько небольших инструментов для проверки и управления связкой ключей Gnome)

Источники и выпуск:https://github.com/intika/gnome-keyring-tools

Кольцо для ключей с замком -gkey -lock.c

#include 
#include 

int main() {
    GnomeKeyringResult lock_result = gnome_keyring_lock_all_sync();
    if (lock_result == GNOME_KEYRING_RESULT_OK) {
        printf("Successfully locked\n");
        return 0;
    } else {
        printf("Error locking keyring: %d\n", lock_result);
        return 1;
    }
}

Разблокировать брелок -gkey -unlock.c

#include 
#include 

int main() {
    GnomeKeyringResult lock_result = gnome_keyring_unlock_sync(NULL,NULL);
    if (lock_result == GNOME_KEYRING_RESULT_OK) {
        printf("Successfully unlocked\n");
        return 0;
    } else {
        printf("Error unlocking keyring: %d\n", lock_result);
        return 1;
    }
}

Проверить связку ключей -gkey -check.c

#include 
#include 

int main() {

  GnomeKeyringInfo *info;
  GnomeKeyringResult gkr;

  gkr = gnome_keyring_get_info_sync(NULL, &info);
  if (gkr != GNOME_KEYRING_RESULT_OK) {
    printf("error\n");
    return -1;
  }
  if (gnome_keyring_info_get_is_locked(info)) {
    printf("locked\n");
    return 0;
  }
  else {
    printf("unlocked\n");
    return -1;
  }
  gnome_keyring_info_free(info);

}

Как строить

cc gkey-lock.c -o gkey-lock -Wall -I/usr/include/gnome-keyring-1 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -lgnome-keyring -lglib-2.0
cc gkey-unlock.c -o gkey-unlock -Wall -I/usr/include/gnome-keyring-1 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -lgnome-keyring -lglib-2.0
cc gkey-check.c -o gkey-check -Wall -I/usr/include/gnome-keyring-1 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -lgnome-keyring -lglib-2.0

Бонус -Проверка с помощью Python -gkey -check.py

import gnomekeyring
print gnomekeyring.get_info_sync(gnomekeyring.get_default_keyring_sync()).get_is_locked()

Bonus II -Мониторинг состояния набора ключей Gnome на панели задач/трее KDE

Я заставил gkey -проверить возвращаемую ошибку, когда он разблокирован в дополнение к строке unlockedЗатем я мог использовать виджет KDE Server Statusдля отслеживания состояния заблокированного/разблокированного набора ключей с визуальным значком :)с помощью командыgkey-check

0
01.08.2020, 10:20
1 ответ

Просто смотрим на поведение и делаем выводы о функциях.

apt somecommand --получает завершение, а не apt --, а apt-get --работает. Причина в том, что aptобъединяет функционалы разных команд, среди которых apt-getи apt-cache. Завершение зависит от команды sub -, поэтому имеет смысл, чтобы опции отображались после команды sub -.

примеры:

$ apt install --
--allow-change-held-packages   --install-recommends
--allow-downgrades             --install-suggests
--allow-insecure-repositories  --no-install-recommends
--allow-remove-essential       --no-install-suggests
--allow-unauthenticated        --only-upgrade
--arch-only                    --print-uris
--assume-no                    --purge
--assume-yes                   --reinstall
--auto-remove                  --remove
--download                     --show-progress
--download-only                --show-upgraded
--dry-run                      --simulate
--fix-broken                   --solver
--fix-missing                  --target-release
--fix-policy                   --trivial-only
--force-yes                    --upgrade
--ignore-hold                  --verbose-versions
--ignore-missing               

но:

$ apt search --
--full        --names-only  
0
18.03.2021, 23:15

Теги

Похожие вопросы