ohmyalias 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. #!/usr/bin/env bash
  2. # Template s2 created by (Shell-Base)
  3. #-----------HEADER-----------------------------------------------------------------|
  4. #AUTOR
  5. # Jefferson Rocha <lrcjefferson@gmail.com>
  6. #
  7. #PROGRAM
  8. # ohmyalias
  9. #
  10. #SMALL DESC
  11. # Create your easily alias!!
  12. #
  13. #LICENSE
  14. # MIT
  15. #
  16. #HOMEPAGE
  17. # https://slackjeff.com.br
  18. #
  19. #CHANGELOG
  20. # v1.1 - 16/04/2018 - Jefferson Rocha
  21. # * Corrected language bug, which did not adjust.
  22. # * Add version variable, for show version.
  23. # * Removed array 'list' and 'lista'.
  24. # * Now with alias removal support in (.bashrc)
  25. #----------------------------------------------------------------------------------|
  26. #--------VARS-------------->
  27. version="1.1"
  28. directory_bashrc="$HOME/.bashrc"
  29. lang="" # reset var.
  30. #colors
  31. red="\033[31;1m"
  32. end="\033[m"
  33. #-------------------------->
  34. #--------FUNCTIONS--------->
  35. br(){
  36. for ali in "Pequena_Descricao" "Nick" "Comando"; do
  37. read -p "${ali[@]}: " ${ali[@]}
  38. done
  39. # Sending command to .bashrc
  40. cat << EOF >> "$directory_bashrc"
  41. #$Pequena_Descricao
  42. alias ${Nick}="$Comando"
  43. EOF
  44. }
  45. eng(){
  46. for ali in "Small_Description" "Nick" "Command"; do
  47. read -p "${ali[@]}: " ${ali[@]}
  48. done
  49. # Sending command to .bashrc
  50. cat << EOF >> "$directory_bashrc"
  51. #$Small_Description
  52. alias ${Nick}="$Command"
  53. EOF
  54. }
  55. ajuda_now(){
  56. cat << EOF
  57. USO: ohmyalias [OPÇÃO]
  58. Parâmetros disponiveis:
  59. -c, --criar
  60. Para criar um novo alias
  61. -r, --remover
  62. Para remover um alias, localizado no seu home .bashrc
  63. -a, --ajuda
  64. Para abrir está opção de ajuda
  65. A criação é simples, o questionario é perguntando e ao todo são 3 perguntas.
  66. Pequena descrição, Nick, Comando
  67. Exemplo de um simples alias, exemplo quero deixar o ls com o parâmetro --color, para
  68. colorir a listagem.
  69. Pequena_Descricao: Agora o ls é colorido
  70. Nick: ls
  71. Comando: ls --color
  72. O arquivo é indexado no seu .bashrc, caso você não o tenha em seu HOME é criado
  73. automaticamente no inicio do programa.
  74. EOF
  75. }
  76. help_now(){
  77. cat << EOF
  78. USAGE: ohmyalias [OPTION]
  79. Options Avaiables:
  80. -c, --create
  81. For create a new alias
  82. -r, --remove
  83. For remove alias located in your home, .bashrc
  84. -h, --help
  85. For open this options.
  86. Have a tree questions, Small Description, Nick, Command
  87. Example, simple alias for keep ls colorized with option --color.
  88. Small_Description: Now ls have a color!
  89. Nick: ls
  90. Command: ls --color
  91. Archive index in .bashrc in your home.
  92. EOF
  93. }
  94. remover(){
  95. lista_alias=$(grep "^alias" ~/.bashrc | cut -d ' ' -f 2-)
  96. for list in "$lista_alias"; do
  97. if [[ -z "$lista_alias" ]]; then # Se for nulo sai.
  98. echo "Nenhum alias encontrado..."
  99. exit 1
  100. fi
  101. echo -e "${red}#----------------------Lista de alias----------------------#${end}\n"
  102. echo -e "${list}\n"
  103. echo -e "${red}#----------------------------------------------------------#${end}"
  104. done
  105. while true; do
  106. read -p $'\nNome do alias para remover: ' alias_remover
  107. # Se não exister loop come solto.
  108. if grep -w "^alias*.${alias_remover}" "$directory_bashrc"; then
  109. sed -i "/^alias*.${alias_remover}/d" "$directory_bashrc"
  110. echo "Removido com sucesso."
  111. exit 0
  112. else
  113. echo "Você digitou certo?"
  114. continue
  115. fi
  116. done
  117. }
  118. remove(){
  119. list_alias=$(grep "^alias" ~/.bashrc | cut -d ' ' -f 2-)
  120. for list in "$list_alias"; do
  121. if [[ -z "$list_alias" ]]; then # Se for nulo sai.
  122. echo "Not alias found..."
  123. exit 1
  124. fi
  125. echo -e "${red}#----------------------List alias----------------------#${end}\n"
  126. echo -e "${list}\n"
  127. echo -e "${red}#----------------------------------------------------------#${end}"
  128. done
  129. while true; do
  130. read -p $'\nName alias for remove: ' alias_remove
  131. # Se não exister loop come solto.
  132. if grep -w "^alias*.${alias_remove}" "$directory_bashrc"; then
  133. sed -i "/^alias*.${alias_remove}/d" "$directory_bashrc"
  134. echo "Sucess."
  135. exit 0
  136. else
  137. echo "Typed right?"
  138. continue
  139. fi
  140. done
  141. }
  142. #-------------------------->
  143. #------TEST's-------------->
  144. # .bashrc exist?
  145. if [ ! -e "$directory_bashrc" ]; then
  146. > "$HOME/.bashrc"
  147. fi
  148. # pt-br or eng?
  149. if [ "$LANG" = "pt_BR.UTF-8" ]; then
  150. lang="pt_BR"
  151. elif [ "$LANG" = "pt_BR.utf8" ]; then
  152. lang="pt_BR"
  153. elif [ "$LANG" = "pt_BR.utf-8" ]; then
  154. lang="pt_BR"
  155. else
  156. lang="en_US"
  157. fi
  158. #-------------------------->
  159. # Start here, have fun. :)
  160. if [ "$lang" = "pt_BR" ]; then
  161. case "$1" in
  162. -c | --criar) br ;; # call function for creation
  163. -a | --ajuda) ajuda_now ;; # call function ajuda_now
  164. -r | --remover) remover ;;
  165. *) echo -e "Para ajuda use os parâmetros -a ou --ajuda\n" ;;
  166. esac
  167. else
  168. case "$1" in
  169. -c | --create) eng ;; # call function for creation
  170. -h | --help) help_now ;; # call function help_now
  171. -r | --remove) remove ;;
  172. *) echo -e "For help use -h or --help\n" ;;
  173. esac
  174. fi