editenv


Logs | Files | README | README | LICENSE | GitLab


1
commit ad6625bcfa8ff5ad0dedfe6fcce77fa8551ba4bf
2
Author: Connor Etherington <[email protected]>
3
Date:   Sun Jul 2 10:36:25 2023 +0200
4
5
    Auto-Commit Update - 20230702
6
---
7
 PKGBUILD        |  2 +-
8
 usr/bin/editenv | 21 +++++++++------------
9
 2 files changed, 10 insertions(+), 13 deletions(-)
10
11
diff --git a/PKGBUILD b/PKGBUILD
12
index c7f0310..d90355b 100644
13
--- a/PKGBUILD
14
+++ b/PKGBUILD
15
@@ -1,7 +1,7 @@
16
 # Maintainer: Connor Etherington <[email protected]>
17
 # ---
18
 pkgname=editenv
19
-pkgver=0.2.1
20
+pkgver=0.2.2
21
 pkgrel=1
22
 pkgdesc="A simple command line tool for conveniently storing and editing environment variables."
23
 arch=(any)
24
diff --git a/usr/bin/editenv b/usr/bin/editenv
25
index 82960c5..ecbcf5e 100755
26
--- a/usr/bin/editenv
27
+++ b/usr/bin/editenv
28
@@ -32,7 +32,7 @@ FZFPREVIEW="cat $ENTRIESFILE|grep {} | grep -q '#YESPREVIEW' &&
29
   echo {} | grep -q 'NEW VARIABLE' && echo -e '\n\e[1;32m[+] \e[37mCreate new environment variable\n\n\n\nEnvironment variables are used to store information that can be used by programs and scripts\n\n\nFor example, setting:\n\n$ \e[33mEDITOR=nvim\n\n\e[0mwill set the environment variable EDITOR to nvim\n\n\nThis can be used by other programs to determine which editor to use, or for any other purpose\n\n\nFor example, running:\n\n$ \e[33m\$EDITOR\n\ninstead of\n\n$ nvim\n\n\e[0mfrom your terminal\e[0m\n' && return 0 ||
30
   echo {} | grep -q 'NEW PATH' && echo -e '\n\e[1;32m[+] \e[37mAdd a new directory to your path\n\n\n\nExecutable files in this directory can be run from anywhere without needing to specify the absolute path\n\n\nFor example, running:\n\n$ \e[33meditenv\n\ninstead of\n\n$ /usr/bin/editenv\n\nfrom your terminal\e[0m\n' && return 0"
31
 
32
-trap "rm -f ${TMP}; eval $(source $ENTRIESFILE) >/dev/null 2>&1" EXIT QUIT STOP ERR
33
+trap "rm -f ${TMP}" EXIT QUIT STOP ERR
34
 
35
 
36
 # Functions:
37
@@ -45,9 +45,7 @@ NEWTYPE(){ echo -e '\e[36mNEW VARIABLE\nNEW PATH\e[0m' ; }
38
 
39
 SELECTHOLDER(){ awk -F= '{print $1}' ${1:-$ENTRIESFILE}|sed 's/\s*//;/^$/d;s/export //g'|sort -u|grep -v 'EDITENV_ISSOURCED'|grep -v 'EDITENV_PATHFILE' ; }
40
 
41
-FIRSTLOOP(){ [ -f $ENTRIESFILE ] && [ $(cat $ENTRIESFILE | grep -v 'EDITENV_ISSOURCED' | grep -v 'EDITENV_PATHFILE' | sed '/^$/d' | wc -l) -eq 0 ] && FIRST || return 0 ; }
42
-
43
-NOTSOURCEDLOOP(){ [[ -z $EDITENV_ISSOURCED ]] || [[ -z $EDITENV_PATHFILE ]] && NOTSOURCED ; return 0 ; }
44
+FIRSTLOOP(){ [[ -z $EDITENV_ISSOURCED ]] || [[ -z $EDITENV_PATHFILE ]] && NOTSOURCED  || [[ -f $ENTRIESFILE ]] && [[ $(cat $ENTRIESFILE | grep -v 'EDITENV_ISSOURCED' | grep -v 'EDITENV_PATHFILE' | sed '/^$/d' | wc -l) -eq 0 ]] && FIRST ; }
45
 
46
 FIRST(){ wasFirst=true ; dialog --title " ~ First Run ~ " --yesno "$NEWENTRY" 9 62 && NEW && return 0 || clear && err "Please add an entry to continue" ; }
47
 
48
@@ -60,15 +58,12 @@ NOTSOURCED(){
49
   entries="export EDITENV_ISSOURCED=true\nexport EDITENV_PATHFILE=${XDG_DATA_HOME:-$HOME/.local/share}/editenv/paths\nsource \$EDITENV_PATHFILE >/dev/null 2>&1\n$(cat $ENTRIESFILE|grep -v 'EDITENV_ISSOURCED'|grep -v 'EDITENV_PATHFILE')"
50
 
51
   echo -e "$entries" > $ENTRIESFILE ; dialog --title " ~ editenv ~ " --msgbox "$NOTSOURCED" 16 82 ;
52
-  echo -e "source ${XDG_DATA_HOME:-$HOME/.local/share}/editenv/entries" | xsel -ib ; FIRSTLOOP ;
53
+  echo -e "source ${XDG_DATA_HOME:-$HOME/.local/share}/editenv/entries" | xsel -ib
54
 
55
 }
56
 
57
 function NEW_ENTRY {
58
 
59
-  ! [ -d "${XDG_DATA_HOME:-$HOME/.local/share}/editenv" ] &&
60
-    mkdir -p "${XDG_DATA_HOME:-$HOME/.local/share}/editenv"
61
-
62
   dialog \
63
     --stdout --title " ~ NEW ENV VARIABLE ~ " \
64
     --form "\n                  Please fill in the required information :\n " 13 81 3 \
65
@@ -168,9 +163,13 @@ function DEL {
66
 
67
 function MAIN {
68
 
69
-  source $ENTRIESFILE >/dev/null 2>&1
70
+  ! [ -d "${XDG_DATA_HOME:-$HOME/.local/share}/editenv" ] && {
71
+    mkdir -p "${XDG_DATA_HOME:-$HOME/.local/share}/editenv"
72
+    touch ${ENTRIESFILE} && touch ${PATHFILE}
73
+  }
74
+
75
+  FIRSTLOOP
76
 
77
-  FIRSTLOOP && NOTSOURCEDLOOP && clear
78
 
79
   VALUE=$( PLACEHOLDER $1 |fzf \
80
     --ansi --no-sort --no-info \
81
@@ -205,8 +204,6 @@ function SELECT {
82
 # Script start:
83
 # ---
84
 
85
-trap "rm -f $TMP" EXIT QUIT
86
-
87
 case ${1} in
88
   '-a'|'-n'|'--add'|'--new') [[ -n $3 ]] && QUICKADD "$2" "$3" || NEW && exit 0 ;;
89
   '-c'|'-y'|'--copy'|'--yes') x="${@:2}"; COPYVAL "${x:-`SELECT "Select value to copy:"`}" "✅ Copied to clipboard" && exit 0 ;;