Skip to content

Load (and optionally decrypt via GnuPG) user/pass identity information

Notifications You must be signed in to change notification settings

robertkrimen/Config-Identity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAME
    Config::Identity - Load (and optionally decrypt via GnuPG) user/pass
    identity information

VERSION
    version 0.0017

SYNOPSIS
    PAUSE:

        use Config::Identity::PAUSE;

        # 1. Find either $HOME/.pause-identity or $HOME/.pause
        # 2. Decrypt the found file (if necessary), read, and parse it
        # 3. Throw an exception unless  %identity has 'user' and 'password' defined

        my %identity = Config::Identity::PAUSE->load;
        print "user: $identity{user} password: $identity{password}\n";

    GitHub API:

        use Config::Identity::GitHub;

        # 1. Find either $HOME/.github-identity or $HOME/.github
        # 2. Decrypt the found file (if necessary) read, and parse it
        # 3. Throw an exception unless %identity has 'login' and 'token' defined

        my %identity = Config::Identity::PAUSE->load;
        print "login: $identity{login} token: $identity{token}\n";

DESCRIPTION
    Config::Identity is a tool for loadiing (and optionally decrypting via
    GnuPG) user/pass identity information

    For GitHub API access, an identity is a "login"/"token" pair

    For PAUSE access, an identity is a "user"/"password" pair

USAGE
  %identity = Config::Identity->load_best( <stub> )
    First attempt to load an identity from $HOME/.<stub>-identity

    If that file does not exist, then attempt to load an identity from
    $HOME/.<stub>

    The file may be optionally GnuPG encrypted

    %identity will be populated like so:

        <key> <value>

    For example:

        username alice
        password hunter2

Using a custom "gpg" or passing custom arguments
    You can specify a custom "gpg" executable by setting the CI_GPG
    environment variable

        export CI_GPG="$HOME/bin/gpg"

    You can pass custom arguments by setting the CI_GPG_ARGUMENTS
    environment variable

        export CI_GPG_ARGUMENTS="--no-secmem-warning"

Encrypting your identity information with GnuPG
    If you've never used GnuPG before, first initialize it:

        # Follow the prompts to create a new key for yourself
        gpg --gen-key

    To encrypt your GitHub identity with GnuPG using the above key:

        # Follow the prompts, using the above key as the "recipient"
        # Use ^D once you've finished typing out your authentication information
        gpg -ea > $HOME/.github

Caching your GnuPG secret key via gpg-agent
    Put the following in your .*rc

        if which gpg-agent 1>/dev/null
        then
            if test -f $HOME/.gpg-agent-info && \
                kill -0 `cut -d: -f 2 $HOME/.gpg-agent-info` 2>/dev/null
            then
                . "${HOME}/.gpg-agent-info"
                export GPG_AGENT_INFO
            else
                eval `gpg-agent --daemon --write-env-file "${HOME}/.gpg-agent-info"`
            fi
        else
        fi

PAUSE identity format
        user <user>
        password <password>

    "username" can also be used as alias for "user"

GitHub identity format
        login <login>
        token <token>

AUTHOR
    Robert Krimen <[email protected]>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2014 by Robert Krimen.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.

About

Load (and optionally decrypt via GnuPG) user/pass identity information

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published