install.sh 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #!/usr/bin/env bash
  2. #==============HEADER========================================================|
  3. #Instalador RopeBox
  4. #============================================================================|
  5. # É root?
  6. [ "$UID" = "0" ] && { echo "Root não é permitido."; exit 1 ;}
  7. directory_task="${HOME}/ropebox"
  8. # Arquivos que está dentro do diretorio ropebox
  9. # especificar aqui.
  10. first_archives=(
  11. 'ropebox'
  12. 'ropebox.conf'
  13. 'changelog.txt'
  14. )
  15. # Editores de texto via cli.
  16. editors=(
  17. 'vi'
  18. 'vim'
  19. 'nano'
  20. 'joe'
  21. 'pico'
  22. 'mcedit'
  23. 'emacs'
  24. )
  25. # Criando diretorios necessários para execução
  26. # basica do programa.
  27. if [ ! -d "$directory_task" ]; then
  28. mkdir -p "${directory_task}/task/" || { echo "Erro, nao foi possivel criar diretorio 'ropebox'. Abortando."; exit 1 ;}
  29. fi
  30. printf 'Criação do diretorio ropebox....... %-10s[OK]\n'
  31. # Fornecendo permissão de execução para ropebox.
  32. chmod +x ${first_archives[0]} || { echo "Erro, não foi possivel dar permissão de execução para ${first_archives[0]}" ;}
  33. printf "Permissão bem sucedida para ${first_archives[0]}.... %-10s[OK]\n\n"
  34. # Qual editor o usuário vai utilizar?
  35. while :; do
  36. cat <<EOF
  37. =============> Configuração do Editor
  38. Informe qual o seu editor favorito!
  39. O editor que você selecionar será utilizado para editar as suas tarefas.
  40. Caso você selecione nenhum, por padrão o editor nano será utilizado.
  41. Você pode querer editar posteriormente o arquivo de configuração: ${first_archives[1]}
  42. 1) vi
  43. 2) vim
  44. 3) nano
  45. 4) joe
  46. 5) pico
  47. 6) mcedit
  48. 7) emacs
  49. 8) nenhum
  50. EOF
  51. read -p 'Escolha>>> ' editor
  52. case $editor in
  53. 1) sed -i "s/my_editor=.*/my_editor=\'${editors[0]}\'/" "${first_archives[1]}"; break ;;
  54. 2) sed -i "s/my_editor=.*/my_editor=\'${editors[1]}\'/" "${first_archives[1]}"; break ;;
  55. 3) sed -i "s/my_editor=.*/my_editor=\'${editors[2]}\'/" "${first_archives[1]}"; break ;;
  56. 4) sed -i "s/my_editor=.*/my_editor=\'${editors[3]}\'/" "${first_archives[1]}"; break ;;
  57. 5) sed -i "s/my_editor=.*/my_editor=\'${editors[4]}\'/" "${first_archives[1]}"; break ;;
  58. 6) sed -i "s/my_editor=.*/my_editor=\'${editors[5]}\'/" "${first_archives[1]}"; break ;;
  59. 7) sed -i "s/my_editor=.*/my_editor=\'${editors[6]}\'/" "${first_archives[1]}"; break ;;
  60. 8) sed -i "s/my_editor=.*/my_editor=\'${editors[2]}\'/" "${first_archives[1]}"; break ;;
  61. *) echo "Opção Inválida!" ; continue ;;
  62. esac
  63. done
  64. # Copiando todos arquivos para diretorio ropebox
  65. # no home do usuário
  66. for archive in "${first_archives[@]}"; do
  67. cp "$archive" "${HOME}/ropebox/" || { echo "Erro, arquivo $archive não pode ser movido, Abortando."; exit 1 ;}
  68. done
  69. printf "Arquivos '${first_archives[*]}' copiados....... %-10s[OK]\n\n"
  70. # Criando alias do ropebox
  71. # para ser chamado de qualquer lugar, a qualquer momento.
  72. if [ -e "${HOME}/.bashrc" ] && [ -w "${HOME}/.bashrc" ]; then
  73. # ropebox já existe como alias?
  74. if ! grep -q "ropebox=.*ropebox" "${HOME}/.bashrc"; then
  75. cat >> "${HOME}/.bashrc" <<EOF
  76. # Chamada do ropebox
  77. alias ropebox="${directory_task}/ropebox"
  78. EOF
  79. fi
  80. printf "Chamada em .bashrc....... %-20s[OK]\n\n"
  81. else
  82. > "${HOME}/.bashrc" # Não existe? criamos.
  83. cat >> "${HOME}/.bashrc" <<EOF
  84. # Chamada do ropebox
  85. alias ropebox="${directory_task}/ropebox"
  86. EOF
  87. fi
  88. cat <<EOF
  89. ----> Instalação Concluída com Sucesso!
  90. Ropebox está em seu home, para execução você pode navegar até /home/SeuUsuario/ropebox e executar
  91. ./ropebox ou bash ropebox
  92. Ou se preferir faça a chamada ropebox na linha de comando...
  93. EOF