Wip: Works well as I'm commiting with the good user
This commit is contained in:
parent
f722286fda
commit
ca682c6477
50
bin/idmgr
50
bin/idmgr
@ -35,6 +35,8 @@ IDM_DIR_ID=${IDM_DIR_ID:-$IDM_CONFIG_DIR/id}
|
|||||||
IDM_DIR_LIB=${IDM_DIR_LIB:-$IDM_DIR_ROOT/lib}
|
IDM_DIR_LIB=${IDM_DIR_LIB:-$IDM_DIR_ROOT/lib}
|
||||||
IDM_DIR_CACHE=${IDM_DIR_CACHE:-${XDG_CACHE_HOME:-~/.cache}/idmgr}
|
IDM_DIR_CACHE=${IDM_DIR_CACHE:-${XDG_CACHE_HOME:-~/.cache}/idmgr}
|
||||||
|
|
||||||
|
IDM_SRC_WORDS='enable disable kill shell quit e d k s q'
|
||||||
|
|
||||||
mkdir -p $IDM_CONFIG_DIR $IDM_DIR_ID $IDM_DIR_CACHE
|
mkdir -p $IDM_CONFIG_DIR $IDM_DIR_ID $IDM_DIR_CACHE
|
||||||
|
|
||||||
# Mod vars ...
|
# Mod vars ...
|
||||||
@ -72,8 +74,11 @@ idm_core__help ()
|
|||||||
printf " %-20s: %s\n" "fun " "Show internal function (debug)"
|
printf " %-20s: %s\n" "fun " "Show internal function (debug)"
|
||||||
printf " %-20s: %s\n" "hier " "Show cli function (debug)"
|
printf " %-20s: %s\n" "hier " "Show cli function (debug)"
|
||||||
|
|
||||||
|
local mods=$(idm_lib_order_get status)
|
||||||
|
echo
|
||||||
|
echo "Loaded mods: $mods"
|
||||||
|
|
||||||
idm_core_exec_mod $id __help "\n%s" $(idm_lib_order_get status)
|
idm_core_exec_mod $id __help "\n%s" $mods
|
||||||
|
|
||||||
echo
|
echo
|
||||||
lib_log NOTICE "License:"
|
lib_log NOTICE "License:"
|
||||||
@ -105,8 +110,11 @@ idm_core__enable ()
|
|||||||
if [ "${SHELL_ID-}" == "$id" ]; then
|
if [ "${SHELL_ID-}" == "$id" ]; then
|
||||||
#idm_exit 0 INFO "Your workspace is already activated"
|
#idm_exit 0 INFO "Your workspace is already activated"
|
||||||
lib_log WARN "Your workspace is already activated"
|
lib_log WARN "Your workspace is already activated"
|
||||||
|
|
||||||
elif [ -n "${SHELL_ID-}" ]; then
|
elif [ -n "${SHELL_ID-}" ]; then
|
||||||
idm_exit 0 WARN "Your workspace is already activated with $SHELL_ID"
|
#idm_exit 0 WARN "Your workspace is already activated with $SHELL_ID"
|
||||||
|
lib_log WARN "Changing $SHELL_ID workspace to $id"
|
||||||
|
idmgr disable "${SHELL_ID-}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Retrieve environment config
|
# Retrieve environment config
|
||||||
@ -132,7 +140,7 @@ idm_core__disable ()
|
|||||||
idm_core_exec_mod $id __disable "Disabling %s ..." $(idm_lib_order_get disable)
|
idm_core_exec_mod $id __disable "Disabling %s ..." $(idm_lib_order_get disable)
|
||||||
|
|
||||||
# Inform user
|
# Inform user
|
||||||
lib_log NOTICE "Id $id is disabled"
|
lib_log NOTICE "Identity '$id' is unloaded"
|
||||||
}
|
}
|
||||||
|
|
||||||
idm_core__kill ()
|
idm_core__kill ()
|
||||||
@ -155,8 +163,10 @@ idm_core__kill ()
|
|||||||
##########################################
|
##########################################
|
||||||
|
|
||||||
# Dump sub commands that need to be sourved to work
|
# Dump sub commands that need to be sourved to work
|
||||||
idm_core__shell_words ()
|
idm_core__shell_words_deprected ()
|
||||||
{
|
{
|
||||||
|
# REPLACED BY IDM_SRC_WORDS, does not peovides ids anymore ...
|
||||||
|
exit 777
|
||||||
local id=${1-}
|
local id=${1-}
|
||||||
local words=
|
local words=
|
||||||
|
|
||||||
@ -170,7 +180,6 @@ idm_core__shell_words ()
|
|||||||
|
|
||||||
idm_core__shell ()
|
idm_core__shell ()
|
||||||
{
|
{
|
||||||
IDM_SRC_WORDS=$( $IDM_DIR_ROOT/bin/idmgr shell_words )
|
|
||||||
|
|
||||||
echo "export IDM_BIN=${IDM_BIN:-$IDM_DIR_ROOT/bin/idmgr}"
|
echo "export IDM_BIN=${IDM_BIN:-$IDM_DIR_ROOT/bin/idmgr}"
|
||||||
echo "export IDM_DIR_ROOT='$IDM_DIR_ROOT'"
|
echo "export IDM_DIR_ROOT='$IDM_DIR_ROOT'"
|
||||||
@ -257,8 +266,8 @@ idm_lib_order_get ()
|
|||||||
local f=${1}
|
local f=${1}
|
||||||
# >&2 echo "fmt: ${IDM_LIB_TABLEFMT%%$f*}"
|
# >&2 echo "fmt: ${IDM_LIB_TABLEFMT%%$f*}"
|
||||||
#>&2 echo -e "\n>order: $f\n>table: $IDM_LIB_TABLE"
|
#>&2 echo -e "\n>order: $f\n>table: $IDM_LIB_TABLE"
|
||||||
|
local w="ignore ${IDM_LIB_TABLEFMT%%$f*}"
|
||||||
f=$( wc -w <<< "ignore ${IDM_LIB_TABLEFMT%%$f*}" )
|
f=$( wc -w <<< "$w" )
|
||||||
|
|
||||||
sort -t, -k${f} <<< "$IDM_LIB_TABLE" | cut -d, -f1 | xargs
|
sort -t, -k${f} <<< "$IDM_LIB_TABLE" | cut -d, -f1 | xargs
|
||||||
}
|
}
|
||||||
@ -287,25 +296,7 @@ idm_lib_load ()
|
|||||||
var_name="IDM_${type^^}_LOADED"
|
var_name="IDM_${type^^}_LOADED"
|
||||||
|
|
||||||
|
|
||||||
# Rebuild vars for all modules !
|
|
||||||
case $type in
|
|
||||||
lib)
|
|
||||||
|
|
||||||
;;
|
|
||||||
mod)
|
|
||||||
local d_val d_var
|
|
||||||
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
echo "unsupported type: $type"
|
|
||||||
return 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
|
|
||||||
# Source lib/mods
|
# Source lib/mods
|
||||||
#set -x
|
|
||||||
for name in $names; do
|
for name in $names; do
|
||||||
source "$IDM_DIR_LIB/idmgr_${type}_${name}.sh"
|
source "$IDM_DIR_LIB/idmgr_${type}_${name}.sh"
|
||||||
if [ "$?" -eq 0 ] ; then
|
if [ "$?" -eq 0 ] ; then
|
||||||
@ -359,6 +350,7 @@ idm_mod_files ()
|
|||||||
|
|
||||||
idm_mod_order ()
|
idm_mod_order ()
|
||||||
{
|
{
|
||||||
|
>&2 echo "DEPRECATED: idm_mod_order"
|
||||||
local mods=$@
|
local mods=$@
|
||||||
export IDM_MOD_FILES="$( xargs <<< $mods)"
|
export IDM_MOD_FILES="$( xargs <<< $mods)"
|
||||||
|
|
||||||
@ -420,10 +412,11 @@ idm_core_init ()
|
|||||||
|
|
||||||
# Force native library orders
|
# Force native library orders
|
||||||
idm_lib_order_set id 10 90 10
|
idm_lib_order_set id 10 90 10
|
||||||
idm_lib_order_set gpg 11 89 11
|
#idm_lib_order_set gpg 11 89 11
|
||||||
idm_lib_order_set ssh 12 88 12
|
idm_lib_order_set ssh 12 88 12
|
||||||
|
#idm_lib_order_set git 50 50 50
|
||||||
idm_lib_order_set ps1 60 40 60
|
idm_lib_order_set ps1 60 40 60
|
||||||
idm_lib_order_set tomb 50 50 50
|
#idm_lib_order_set tomb 50 50 50
|
||||||
|
|
||||||
# Load external lib
|
# Load external lib
|
||||||
idm_lib_load lib
|
idm_lib_load lib
|
||||||
@ -750,6 +743,9 @@ idm_core_cli ()
|
|||||||
|
|
||||||
idm_core_cli $@
|
idm_core_cli $@
|
||||||
|
|
||||||
|
|
||||||
|
#declare -p | grep " IDM"
|
||||||
|
|
||||||
exit
|
exit
|
||||||
|
|
||||||
idm_lib_src ()
|
idm_lib_src ()
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
IDM_MOD_CLOUD_DEPS="s3"
|
#IDM_MOD_CLOUD_DEPS="s3"
|
||||||
|
|
||||||
## Prompt functions
|
## Prompt functions
|
||||||
##########################################
|
##########################################
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
IDM_MOD_GIT_DEPS="s1 id ssh"
|
#IDM_MOD_GIT_DEPS="s1 id ssh"
|
||||||
IDM_DISABLE_AUTO+=" git__enable git__disable git__kill "
|
#IDM_DISABLE_AUTO+=" git__enable git__disable git__kill "
|
||||||
|
|
||||||
#idm_hook_register enable idm_git__enable 5
|
#idm_hook_register enable idm_git__enable 5
|
||||||
|
|
||||||
@ -420,10 +420,11 @@ idm_git__ls ()
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Display repo infos
|
# Display repo infos
|
||||||
|
{
|
||||||
echo " Work tree : $git_id_work_tree"
|
echo " Work tree : $git_id_work_tree"
|
||||||
echo " Local config : $git_id_config"
|
echo " Local config : $git_id_config"
|
||||||
echo " Git dir : $git_id_dir"
|
echo " Git dir : $git_id_dir"
|
||||||
|
} | sed "s:$HOME:~:g"
|
||||||
}
|
}
|
||||||
|
|
||||||
idm_git__enable ()
|
idm_git__enable ()
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
IDM_MOD_GPG_DEPS="s0 id"
|
#IDM_MOD_GPG_DEPS="s0 id"
|
||||||
|
|
||||||
|
|
||||||
idm_gpg__help ()
|
idm_gpg__help ()
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
IDM_MOD_ID_DEPS="s0"
|
#IDM_MOD_ID_DEPS="s0"
|
||||||
|
|
||||||
## Identity functions
|
## Identity functions
|
||||||
##########################################
|
##########################################
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
IDM_MOD_PASS_DEPS="s2"
|
#IDM_MOD_PASS_DEPS="s2"
|
||||||
|
|
||||||
|
|
||||||
## Pass functions
|
## Pass functions
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
IDM_MOD_PS1_DEPS="s4 id pass gpg ssh"
|
#IDM_MOD_PS1_DEPS="s4 id pass gpg ssh"
|
||||||
IDM_DISABLE_AUTO+="ps1__ls"
|
#IDM_DISABLE_AUTO+="ps1__ls"
|
||||||
|
|
||||||
## Prompt functions
|
## Prompt functions
|
||||||
##########################################
|
##########################################
|
||||||
@ -20,10 +20,8 @@ idm_ps1__ls ()
|
|||||||
{
|
{
|
||||||
local id=${1}
|
local id=${1}
|
||||||
|
|
||||||
#set -x
|
# Bug here: PS1 and vars are like nk existing ... weird
|
||||||
#echo "PS1=${SHELL_PS1:-${PS1-}}"
|
if grep -q "($id)" <<<"${IDM_SHELL_PS1:-${PS1-}}" ; then
|
||||||
|
|
||||||
if grep -q "($id)" <<<"${SHELL_PS1:-${PS1-}}" ; then
|
|
||||||
echo " enabled"
|
echo " enabled"
|
||||||
else
|
else
|
||||||
echo " disabled"
|
echo " disabled"
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
IDM_MOD_SSH_DEPS="s0 id gpg"
|
#IDM_MOD_SSH_DEPS="s0 id gpg"
|
||||||
|
|
||||||
# trap 'idm_ssh_kill' 0
|
# trap 'idm_ssh_kill' 0
|
||||||
|
|
||||||
@ -12,7 +12,8 @@ idm_ssh__help ()
|
|||||||
echo "Secure Shell"
|
echo "Secure Shell"
|
||||||
# printf " %-20s: %s\n" "info" "Info submenu"
|
# printf " %-20s: %s\n" "info" "Info submenu"
|
||||||
printf " %-20s: %s\n" "ssh ls" "List unlocked keys"
|
printf " %-20s: %s\n" "ssh ls" "List unlocked keys"
|
||||||
printf " %-20s: %s\n" "ssh new" "Create new ssh key (ssh-keygen)"
|
printf " %-20s: %s\n" "ssh tree" "Show keypairs tree"
|
||||||
|
printf " %-20s: %s\n" "ssh new [dir]" "Create new ssh key dest dir"
|
||||||
printf " %-20s: %s\n" "ssh add" "Unlock known keypairs"
|
printf " %-20s: %s\n" "ssh add" "Unlock known keypairs"
|
||||||
printf " %-20s: %s\n" "ssh rm" "Lock known keypairs"
|
printf " %-20s: %s\n" "ssh rm" "Lock known keypairs"
|
||||||
printf " %-20s: %s\n" "ssh del" "Delete keypair"
|
printf " %-20s: %s\n" "ssh del" "Delete keypair"
|
||||||
@ -130,6 +131,129 @@ idm_ssh__kill ()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
## Extra functions
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
idm_ssh__tree ()
|
||||||
|
{
|
||||||
|
local id=$1
|
||||||
|
if lib_id_has_config $id &>/dev/null; then
|
||||||
|
tree -C "$HOME/.ssh/$id"
|
||||||
|
else
|
||||||
|
tree -C "$HOME/.ssh/"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
idm_ssh__new ()
|
||||||
|
{
|
||||||
|
local id=${1-}
|
||||||
|
local dest=${2-}
|
||||||
|
|
||||||
|
local default=
|
||||||
|
local key_vers=
|
||||||
|
local key_user=
|
||||||
|
local key_host=
|
||||||
|
local key_sizes=
|
||||||
|
local key_vers="$(date +'%Y%m%d')"
|
||||||
|
|
||||||
|
#set -x
|
||||||
|
|
||||||
|
# Guess defaults
|
||||||
|
default=$(id -un)
|
||||||
|
if lib_id_has_config $id &>/dev/null; then
|
||||||
|
default=$id
|
||||||
|
if [ -z "$dest" ]; then
|
||||||
|
dest="$HOME/.ssh/$default"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
dest=${dest:-.}
|
||||||
|
fi
|
||||||
|
mkdir -p "$dest"
|
||||||
|
echo "INFO: Key destination dir: $dest"
|
||||||
|
|
||||||
|
# Login
|
||||||
|
while ! grep -q '\w\+' <<< "$key_user"; do
|
||||||
|
read -rp "> Username [$default]: " ans
|
||||||
|
key_user="${ans:-$default}"
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# Host name
|
||||||
|
default="$(hostname -f)"
|
||||||
|
while ! grep -q '[a-zA-Z0-9.-]\+' <<< "$key_host"; do
|
||||||
|
read -rp "> Hostname [$default]: " ans
|
||||||
|
#echo ""
|
||||||
|
key_host="${ans:-$default}"
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# Keys sizes
|
||||||
|
default="ns"
|
||||||
|
echo "Please choose key types:"
|
||||||
|
echo "n) ed25519 strongest, fast"
|
||||||
|
echo "s) rsa4096 most compatible, slow"
|
||||||
|
echo "o) rsa2048 old compatility"
|
||||||
|
while ! grep -q '[nso]\+' <<< "$key_sizes"; do
|
||||||
|
echo -n "> Key types [$default]: "
|
||||||
|
read -n 3 -r ans
|
||||||
|
echo ""
|
||||||
|
key_sizes="${ans:-$default}"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Ask password
|
||||||
|
echo "Define key passphrase for the key(s)."
|
||||||
|
echo "Leave it empty for no password (not recommemded)."
|
||||||
|
echo -n "> Key passphrase [none]: "
|
||||||
|
read -rs key_pass
|
||||||
|
echo
|
||||||
|
key_pass="${key_pass:-}"
|
||||||
|
|
||||||
|
ans=""
|
||||||
|
while [ "$ans" != "$key_pass" ]; do
|
||||||
|
echo -n "> Confirm passphrase: "
|
||||||
|
read -rs ans
|
||||||
|
echo
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# Create keys
|
||||||
|
local size=$key_sizes
|
||||||
|
while [ -n "$size" ]; do
|
||||||
|
local k=${size:0:1}
|
||||||
|
echo -e "\n> Generating key ..."
|
||||||
|
set +e
|
||||||
|
case $k in
|
||||||
|
n)
|
||||||
|
ssh-keygen -f "$dest/${key_user}_ed25519_${key_vers}" \
|
||||||
|
-t ed25519 -a 100 \
|
||||||
|
-N "$key_pass" \
|
||||||
|
-C "${key_user}@${key_host}:ed25519_${key_vers}"
|
||||||
|
;;
|
||||||
|
s)
|
||||||
|
ssh-keygen -f "$dest/${key_user}_rsa4096_${key_vers}" \
|
||||||
|
-t rsa -b 4096 -o -a 500 \
|
||||||
|
-N "$key_pass" \
|
||||||
|
-C "${key_user}@${key_host}:rsa4096_${key_vers}"
|
||||||
|
;;
|
||||||
|
o)
|
||||||
|
ssh-keygen -f "$dest/${key_user}_rsa2048_${key_vers}" \
|
||||||
|
-t rsa -b 2048 -o -a 100 \
|
||||||
|
-N "$key_pass" \
|
||||||
|
-C "${key_user}@${key_host}:rsa2048_${key_vers}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
set -e
|
||||||
|
|
||||||
|
|
||||||
|
size=${size:1}
|
||||||
|
done
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "INFO: Key(s) has been created in $dest"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
## Agent functions
|
## Agent functions
|
||||||
##########################################
|
##########################################
|
||||||
|
|
||||||
@ -216,7 +340,7 @@ idm_ssh__agent_clean ()
|
|||||||
## Extended functions
|
## Extended functions
|
||||||
##########################################
|
##########################################
|
||||||
|
|
||||||
idm_ssh_add ()
|
idm_ssh__add ()
|
||||||
{
|
{
|
||||||
local id=$1
|
local id=$1
|
||||||
local key=${2-}
|
local key=${2-}
|
||||||
@ -230,7 +354,7 @@ idm_ssh_add ()
|
|||||||
pub_keys=$(
|
pub_keys=$(
|
||||||
{
|
{
|
||||||
# Compat mode
|
# Compat mode
|
||||||
find ~/.ssh/id -maxdepth $maxdepth -name "${id}_*" -name '*pub' -name "*$1*" | sort
|
#find ~/.ssh/id -maxdepth $maxdepth -name "${id}_*" -name '*pub' -name "*$1*" | sort
|
||||||
|
|
||||||
# New mode (test)
|
# New mode (test)
|
||||||
find ~/.ssh/$id -maxdepth $maxdepth -name "${id}_*" -name '*pub' -name "*$1*" | sort
|
find ~/.ssh/$id -maxdepth $maxdepth -name "${id}_*" -name '*pub' -name "*$1*" | sort
|
||||||
@ -240,7 +364,7 @@ idm_ssh_add ()
|
|||||||
pub_keys=$(find ~/.ssh/$id -maxdepth $maxdepth -name "${id}_*" -name '*pub' | sort)
|
pub_keys=$(find ~/.ssh/$id -maxdepth $maxdepth -name "${id}_*" -name '*pub' | sort)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "$pub_keys"
|
#echo "$pub_keys"
|
||||||
|
|
||||||
# Get list of key
|
# Get list of key
|
||||||
local key_list=""
|
local key_list=""
|
||||||
@ -260,7 +384,7 @@ idm_ssh_add ()
|
|||||||
idm_exit 0 WARN "No keys found"
|
idm_exit 0 WARN "No keys found"
|
||||||
|
|
||||||
lib_log INFO "Adding keys:"
|
lib_log INFO "Adding keys:"
|
||||||
xargs -n 1 <<<$key_list | lib_log DUMP -
|
xargs -n 1 <<<$key_list | sed "s:$HOME:~:" | lib_log DUMP -
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
ssh-add $key_list
|
ssh-add $key_list
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
IDM_MOD_TOMB_DEPS="s3 id gpg git"
|
#IDM_MOD_TOMB_DEPS="s3 id gpg git"
|
||||||
IDM_MOD_TAGS="id tool"
|
#IDM_MOD_TAGS="id tool"
|
||||||
IDM_MOD_PROG="safe yadm"
|
#IDM_MOD_PROG="safe yadm"
|
||||||
IDM_MOD_PREF="core id"
|
#IDM_MOD_PREF="core id"
|
||||||
|
#
|
||||||
IDM_DISABLE_AUTO+=" tomb__enable tomb__disable tomb__kill "
|
#IDM_DISABLE_AUTO+=" tomb__enable tomb__disable tomb__kill "
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
## Environments
|
## Environments
|
||||||
|
|||||||
@ -1,45 +1,62 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
export IDM_SHELL_PS1=${IDM_SHELL_PS1:-${PS1-}}
|
idmgr_shell_words ()
|
||||||
IDM_SRC_WORDS=${IDM_SRC_WORDS-}
|
|
||||||
IDM_BIN=${IDM_BIN:-idmgr}
|
|
||||||
|
|
||||||
i ()
|
|
||||||
{
|
{
|
||||||
|
# Generate command/ids list to be sourced
|
||||||
|
local IDM_SRC_CMDS='enable disable kill shell quit e d k s q'
|
||||||
|
local IDM_SRC_IDS=$(find "$XDG_CONFIG_HOME/idmgr/id/" \
|
||||||
|
-type f -name "*.env" \
|
||||||
|
-printf "%f " | sed 's/\.env//g')
|
||||||
|
|
||||||
if grep -q ":${1:-NONE}:" <<<"${IDM_SRC_WORDS}"; then
|
echo "$IDM_SRC_CMDS $IDM_SRC_IDS"
|
||||||
|
}
|
||||||
|
|
||||||
result="$( $IDM_BIN $@)"
|
|
||||||
|
idmgr_shell ()
|
||||||
|
{
|
||||||
|
IDM_SRC_WORDS="${IDM_SRC_WORDS:-$(idmgr_shell_words)}"
|
||||||
|
|
||||||
|
# Check if must be sourced or not
|
||||||
|
if [[ "${IDM_SRC_WORDS// /:}" =~ :$1: ]]; then
|
||||||
|
|
||||||
|
# Get output source
|
||||||
|
>&2 echo "INFO : Running sourced command ..."
|
||||||
|
shell_exec="$( command idmgr $@)"
|
||||||
|
|
||||||
# Debug module
|
# Debug module
|
||||||
if [ "${ID_DEBUG-}" == "true" ]; then
|
if [ "${ID_DEBUG-}" == "true" ]; then
|
||||||
if [ "${result:-NONE}" == "NONE" ]; then
|
if [ "${shell_exec:-NONE}" == "NONE" ]; then
|
||||||
echo "======= ${result:-NONE}"
|
echo "======= ${shell_exec:-NONE}"
|
||||||
else
|
else
|
||||||
echo ======= Shell has sourced =======
|
echo ======= Shell has sourced =======
|
||||||
echo "${result:-NONE}"
|
echo "${shell_exec:-NONE}"
|
||||||
echo =======
|
echo =======
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Parse output
|
# Exec output
|
||||||
eval "$result"
|
eval "$shell_exec"
|
||||||
|
|
||||||
else
|
else
|
||||||
$IDM_BIN $@
|
# Execute as regular command
|
||||||
|
command idmgr $@
|
||||||
fi
|
fi
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Set aliases
|
||||||
|
alias idmgr='idmgr_shell'
|
||||||
|
alias i='idmgr'
|
||||||
|
|
||||||
|
# Save current state
|
||||||
|
export PS1="$PS1"
|
||||||
|
export IDM_SHELL_PS1=${IDM_SHELL_PS1:-${PS1-}}
|
||||||
|
|
||||||
|
|
||||||
# Disable when pressing C-b in shell :)
|
# Disable when pressing C-b in shell :)
|
||||||
bind -x '"\C-b": i disable'
|
bind -x '"\C-b": i disable'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Show current identities
|
# Show current identities
|
||||||
echo "INFO: idmgr has been loaded, use 'idmgr' or 'i' to call it"
|
echo "INFO: idmgr has been loaded, use 'idmgr' or 'i' to call it"
|
||||||
#$IDM_BIN id ls
|
idmgr id ls
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user