distrodown 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993
  1. #!/usr/bin/env bash
  2. # INFO------------------------------------------------------------------
  3. # GNU GENERAL PUBLIC LICENSE
  4. #
  5. # Distro Down - Baixe e grave ISO's facilmente.
  6. # Copyright (C) 2018 <Guilherme Machado>
  7. # Free Software Foundation, Inc.
  8. #
  9. #-----------------------------------------------------------------------
  10. #
  11. # This program is free software: you can redistribute
  12. # it and/or modify it under the terms of the GNU General
  13. # Public License as published by the Free Software Foundation,
  14. # either version 3 of the License, or (at your option) any later
  15. # version.
  16. #
  17. # This program is distributed in the hope that it will be useful,
  18. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  19. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  20. # See the GNU General Public License for more details.
  21. #
  22. # You should have received a copy of the GNU General Public License
  23. # along with this program. If not, see
  24. # <http://www.gnu.org/licenses/>.
  25. #
  26. #
  27. # Nome: distrodown
  28. # Autor: Guilherme Felix Machado
  29. # Contato: < machadofguilherme@gmail.com >
  30. # Desenvolvido em: 27 de Março de 2018
  31. # Versão: 1.8
  32. #
  33. # Descrição: Distro Down é uma aplicação destinada a tornar mais fá-
  34. # cil o download e gravação de sua ISO favorita. Não precisa mais ir
  35. # em site oficial, basta apenas acessar o programa pelo seu shell e
  36. # efetuar o download enquanto trabalha ou estuda.
  37. # VARIÁVEIS-------------------------------------------------------------
  38. #--------------------------------- cores -------------------------------
  39. vermelho=$(tput setaf 1)
  40. verde=$(tput setaf 2)
  41. azul=$(tput setaf 4)
  42. fecha_cor=$(tput sgr 0)
  43. negrito=$(tput bold)
  44. #-----------------------------------------------------------------------
  45. #----------------------------- principais ------------------------------
  46. hash="https://notabug.org/colorado/distrodown/raw/master/.hash"
  47. pasta="/home/$USER/"
  48. fonte_local="libs/"
  49. endereco_sync="https://notabug.org/colorado/distrodown.git"
  50. aviso=$(echo -e "
  51. \t${verde}${negrito} O Download da ISO foi concluído com sucesso.${fecha_cor}")
  52. mensagem="Digite uma opção válida. Execute 'distrodown --info' ou
  53. \t'distrodown --help' para mais informações."
  54. #-----------------------------------------------------------------------
  55. #-------------------------------- chaves -------------------------------
  56. sin="0" # Desligado
  57. #-----------------------------------------------------------------------
  58. #-------------------------------- url's --------------------------------
  59. # As URLs aqui contidas são endereços oficiais dos repositórios de cada
  60. # um dos projetos aqui disponíveis. O conteúdo é exatamente o mesmo, sem
  61. # nenhuma modificação em seus dados. Os endereços foram encurtados com
  62. # serviço para melhor leitura de código. Se ainda assim houver dúvidas,
  63. # verifique a hash do arquivo baixado e compare.
  64. #
  65. #
  66. #=====================================================================
  67. # Espelhos:
  68. #=====================================================================
  69. #
  70. #
  71. # http://mirror.clarkson.edu/
  72. # https://mirrors.edge.kernel.org/
  73. #
  74. #
  75. arch_linux="http://bit.ly/2AuEtuN"
  76. debian_os="http://bit.ly/2KXhjC3"
  77. fedora_core="http://bit.ly/2MAxUbb"
  78. l_mint="http://bit.ly/2NctqsH"
  79. centos_os="http://bit.ly/2tQ2tSB"
  80. opensuse_leap="http://bit.ly/2Kp5LHP"
  81. opensuse_roll="http://bit.ly/2lK2HHp"
  82. slackware="http://bit.ly/2NbWi49"
  83. ubuntults="http://bit.ly/2tSyE3U"
  84. ubuntuserverlts="http://bit.ly/2MBv0TT"
  85. gentoo="http://bit.ly/2KgrCQR"
  86. stage3="https://bit.ly/2tiPrwD"
  87. trisquel="http://bit.ly/2trucJe"
  88. deepin="http://bit.ly/2lIYUtN"
  89. manjaro_rato="http://bit.ly/2A5HWzE"
  90. manjaro_plasma="http://bit.ly/2NBMFeH"
  91. manjaro_pe="http://bit.ly/2mzOeOu"
  92. manjaro_construtor="http://bit.ly/2my3DPi"
  93. elementary="http://bit.ly/2thynrB"
  94. puppy="http://bit.ly/2K0s6uK"
  95. solus="http://bit.ly/2ywa1Q3"
  96. artixlinux="http://bit.ly/2KmszYE"
  97. sabayon_mate="http://bit.ly/2KwIwux"
  98. parrot_sec="http://bit.ly/2KmGlub"
  99. #-----------------------------------------------------------------------
  100. #--------------------------------- names -------------------------------
  101. arch="archlinux-2018.08.01-x86_64.iso"
  102. artix="artix-lxqt-20180108-x86_64.iso"
  103. debian="debian-9.5.0-amd64-netinst.iso"
  104. fedora="Fedora-Workstation-Live-x86_64-28-1.1.iso"
  105. mint="linuxmint-19-cinnamon-64bit.iso"
  106. centos="CentOS-7-x86_64-Minimal-1804.iso"
  107. suseleap="openSUSE-Leap-15.0-DVD-x86_64-Current.iso"
  108. suseroll="openSUSE-Tumbleweed-DVD-x86_64-Current.iso"
  109. slack="slackware64-14.2-install-dvd.iso"
  110. buntu="ubuntu-18.04-desktop-amd64.iso"
  111. buntuserver="ubuntu-18.04-live-server-amd64.iso"
  112. gen="install-amd64-minimal-20180415T214502Z.iso"
  113. stage="stage3-amd64-20180614T214502Z.tar.xz"
  114. trisquellibre="trisquel_8.0_amd64.iso"
  115. deepinch="deepin-15.6-amd64.iso"
  116. manjaxfce="manjaro-xfce-17.1.11-stable-x86_64.iso"
  117. manjakde="manjaro-kde-17.1.11-stable-x86_64.iso"
  118. manjagnome="manjaro-gnome-17.1.11-stable-x86_64.iso"
  119. manjaconstrutor="manjaro-architect-17.1.11-stable-x86_64.iso"
  120. eos="elementaryos-0.4.1-stable.20180214.iso"
  121. chibi_puppy="xenialpup64-7.5-uefi.iso"
  122. sol="Solus-3-Budgie.iso"
  123. sabamate="Sabayon_Linux_18.04_amd64_MATE.iso"
  124. pa_security="Parrot-security-4.1_amd64.iso"
  125. #-----------------------------------------------------------------------
  126. # BIBLIOTECAS ----------------------------------------------------------
  127. # Teste para habilitar libs.
  128. if [ -e "/usr/lib/distrodown" ]; then
  129. sin=1 && fonte_local="/usr/lib/distrodown/"
  130. fi
  131. source "$fonte_local"libdd
  132. source "$fonte_local"libburn
  133. #-----------------------------------------------------------------------
  134. # FUNÇÕES --------------------------------------------------------------
  135. ajuda () {
  136. cat << EOF
  137. Menu de ajuda para a utilização do Distro Down.
  138. MODO DE USO:
  139. distrodown <operation> [options]
  140. :: Para baixar uma ISO
  141. Ex1: distrodown archlinux
  142. Ex2: distrodown opensuse
  143. :: Uso geral
  144. Ex1: distrodown -i
  145. Ex2: distrodown --info
  146. OPÇÕES:
  147. -h --help Mostra o menu de ajuda e sai.
  148. -i --info Lista as ISO's disponíveis.
  149. -v --version Exibe a versão do aplicativo.
  150. -w --write Permite escrita em dispositivo USB.
  151. -s --sync Obtém a nova versão.
  152. EOF
  153. }
  154. sincro () {
  155. # Função de sincronização com o repositório.
  156. typeset t
  157. t="0"
  158. while sleep 1.0170; do
  159. git clone -q "$endereco_sync" && mv distrodown /tmp/
  160. # Teste de transferência de dados.
  161. if [ -d "/usr/lib/distrodown/" ]; then
  162. sudo rm /usr/lib/distrodown/*
  163. sudo cp /tmp/distrodown/distrodown /usr/bin/
  164. sudo cp -R /tmp/distrodown/libs/* /usr/lib/distrodown/
  165. else
  166. rm libs/*
  167. cp /tmp/distrodown/distrodown $PWD
  168. cp -R /tmp/distrodown/libs/* $PWD/libs/
  169. fi
  170. rm -rf /tmp/distrodown/
  171. echo -ne "\r${vermelho}[${fecha_cor}${negrito}${azul} ${t}%${fecha_cor} ${vermelho}]${fecha_cor}"
  172. ((t++))
  173. [ "$t" -eq 101 ] && break
  174. done
  175. }
  176. sobre () {
  177. echo "
  178. Copyright (C) 2018 <Guilherme Machado>
  179. Versão 1.8
  180. Free Software Foundation, Inc.
  181. This program is distributed in the hope that it
  182. will be useful, but WITHOUT ANY WARRANTY; without even
  183. the implied warranty of MERCHANTABILITY or FITNESS FOR
  184. A PARTICULAR PURPOSE. See the GNU General Public License
  185. for more details.
  186. "
  187. exit 0
  188. }
  189. axel_progresso () {
  190. axel -a -n 5 "$1" -o "$pasta/$2"
  191. }
  192. ctrl_c () {
  193. echo -e "
  194. \n\n\t${vermelho}${negrito} Encerrando programa...${fecha_cor}\n\n"
  195. [ -e /tmp/.hash ] && rm /tmp/.hash
  196. [ -e /dev/sdb ] && sudo mkfs.vfat /dev/sdb1 >/dev/null 2>&1
  197. exit 0
  198. }
  199. #-----------------------------------------------------------------------
  200. # BLOCO DE TESTES-------------------------------------------------------
  201. # Teste se dependências estão instaladas no sistema.
  202. if [ ! $(type -P sudo) ] >/dev/null 2>&1; then
  203. echo "Para execução, instale o pacote 'sudo'."
  204. exit 1
  205. fi
  206. if [ ! $(type -P git) ] >/dev/null 2>&1; then
  207. echo "Para execução, instale o pacote 'git'."
  208. exit 1
  209. fi
  210. if [ ! $(type -P mkfs) ] >/dev/null 2>&1; then
  211. echo "Para execução, instale o pacote 'dosfstools'."
  212. exit 1
  213. fi
  214. if [ ! $(type -P gvfs-mount) ] >/dev/null 2>&1; then
  215. echo "Para execução, instale o pacote 'gvfs'."
  216. exit 1
  217. fi
  218. if [ ! $(type -P axel) ] >/dev/null 2>&1; then
  219. echo "Para execução, instale o pacote 'axel'."
  220. exit 1
  221. fi
  222. # Teste para imprimir ajuda ou mensagem de erro.
  223. if [ "$1" = "" ] || \
  224. [ "$1" = "-h" ] || \
  225. [ "$1" = "--help" ]; then
  226. ajuda && mensagem=""
  227. fi
  228. # Teste de compatibilidade com o usuário.
  229. [ "$UID" -eq 0 ] && pasta="/"
  230. #-----------------------------------------------------------------------
  231. # PROGRAMA -------------------------------------------------------------
  232. # Teclas chave de encerramento.
  233. trap ctrl_c INT
  234. case $1 in
  235. # Chama o menu '--info'.
  236. -i|--info)
  237. echo -e "
  238. ISO's disponíveis.
  239. > archlinux > artixlinux
  240. > debian > fedora
  241. > mint > centos
  242. > opensuse > slackware
  243. > ubuntu > gentoo
  244. > trisquel > deepin
  245. > manjaro > elementary
  246. > puppy > solus
  247. > parrot > sabayon\n"
  248. exit 0
  249. ;;
  250. # Exibe a versão e o desenvolvedor do aplicativo.
  251. -v|--version)
  252. sobre
  253. ;;
  254. # Os blocos seguintes realizam o download das ISO's.
  255. archlinux) # Arch Linux
  256. sleep 2 && printf "
  257. 1) Arch Linux 2) Cancelar
  258. "
  259. sleep 1
  260. echo -ne "\nDigite a sua opção: " && read opcao
  261. if [ "$opcao" = 1 ]; then
  262. echo
  263. # A distro é baixada via axel.
  264. if axel_progresso $arch_linux $arch; then
  265. sleep 2 ; echo -e "$aviso
  266. " ; exit 0
  267. else
  268. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  269. "
  270. exit 1
  271. fi
  272. elif [ "$opcao" = 2 ]; then
  273. ctrl_c
  274. elif [ "$opcao" != "1" ] || \
  275. [ "$opcao" != "2" ]; then
  276. echo -ne "\n$mensagem" && exit
  277. fi
  278. ;;
  279. artixlinux) # Artix Linux
  280. sleep 2 && printf "
  281. 1) Artix Linux 2) Cancelar
  282. "
  283. sleep 1
  284. echo -ne "\nDigite a sua opção: " && read opcao
  285. if [ "$opcao" = 1 ]; then
  286. echo
  287. # A distro é baixada via axel.
  288. if axel_progresso $artixlinux $artix; then
  289. sleep 2 ; echo -e "$aviso
  290. " ; exit 0
  291. else
  292. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  293. "
  294. exit 1
  295. fi
  296. elif [ "$opcao" = 2 ]; then
  297. ctrl_c
  298. elif [ "$opcao" != "1" ] || \
  299. [ "$opcao" != "2" ]; then
  300. echo -ne "\n$mensagem" && exit
  301. fi
  302. ;;
  303. debian) # Debian
  304. sleep 2 && printf "
  305. 1) Debian 9 2) Cancelar
  306. "
  307. sleep 1
  308. echo -ne "\nDigite a sua opção: " && read opcao
  309. if [ "$opcao" = 1 ]; then
  310. echo
  311. # A distro é baixada via axel.
  312. if axel_progresso $debian_os $debian; then
  313. sleep 2 ; echo -e "$aviso
  314. " ; exit 0
  315. else
  316. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  317. "
  318. exit 1
  319. fi
  320. elif [ "$opcao" = 2 ]; then
  321. ctrl_c
  322. elif [ "$opcao" != "1" ] || \
  323. [ "$opcao" != "2" ]; then
  324. echo -ne "\n$mensagem" && exit
  325. fi
  326. ;;
  327. fedora) # Fedora
  328. sleep 2 && printf "
  329. 1) Fedora Workstation 28 2) Cancelar
  330. "
  331. sleep 1
  332. echo -ne "\nDigite a sua opção: " && read opcao
  333. if [ "$opcao" = 1 ]; then
  334. echo
  335. # A distro é baixada via axel.
  336. if axel_progresso $fedora_core $fedora; then
  337. sleep 2 ; echo -e "$aviso
  338. " ; exit 0
  339. else
  340. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  341. "
  342. exit 1
  343. fi
  344. elif [ "$opcao" = 2 ]; then
  345. ctrl_c
  346. elif [ "$opcao" != "1" ] || \
  347. [ "$opcao" != "2" ]; then
  348. echo -ne "\n$mensagem" && exit
  349. fi
  350. ;;
  351. mint) # Linux Mint
  352. sleep 2 && printf "
  353. 1) Linux Mint - Cinnamon 2) Cancelar
  354. "
  355. sleep 1
  356. echo -ne "\nDigite a sua opção: " && read opcao
  357. if [ "$opcao" = 1 ]; then
  358. echo
  359. # A distro é baixada via axel.
  360. if axel_progresso $l_mint $mint; then
  361. sleep 2 ; echo -e "$aviso
  362. " ; exit 0
  363. else
  364. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  365. "
  366. exit 1
  367. fi
  368. elif [ "$opcao" = 2 ]; then
  369. ctrl_c
  370. elif [ "$opcao" != "1" ] || \
  371. [ "$opcao" != "2" ]; then
  372. echo -ne "\n$mensagem" && exit
  373. fi
  374. ;;
  375. centos) # CentOS
  376. sleep 2 && printf "
  377. 1) CentOS 7 2) Cancelar
  378. "
  379. sleep 1
  380. echo -ne "\nDigite a sua opção: " && read opcao
  381. if [ "$opcao" = 1 ]; then
  382. echo
  383. # A distro é baixada via axel.
  384. if axel_progresso $centos_os $centos; then
  385. sleep 2 ; echo -e "$aviso
  386. " ; exit 0
  387. else
  388. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  389. "
  390. exit 1
  391. fi
  392. elif [ "$opcao" = 2 ]; then
  393. ctrl_c
  394. elif [ "$opcao" != "1" ] || \
  395. [ "$opcao" != "2" ]; then
  396. echo -ne "\n$mensagem" && exit
  397. fi
  398. ;;
  399. opensuse) # openSUSE
  400. sleep 2 && printf "
  401. 1) openSUSE Leap 2) openSUSE Tumbleweed
  402. 3) Cancelar
  403. "
  404. sleep 1
  405. echo -ne "\nDigite a sua opção: " && read opcao
  406. if [ "$opcao" = 1 ]; then
  407. echo
  408. # A distro é baixada via axel.
  409. if axel_progresso $opensuse_leap $suseleap; then
  410. sleep 2 ; echo -e "$aviso
  411. " ; exit 0
  412. else
  413. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  414. "
  415. exit 1
  416. fi
  417. elif [ "$opcao" = 2 ]; then
  418. echo
  419. # A distro é baixada via axel.
  420. if axel_progresso $opensuse_roll $suseroll; then
  421. sleep 2 ; echo -e "$aviso
  422. " ; exit 0
  423. else
  424. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  425. "
  426. exit 1
  427. fi
  428. elif [ "$opcao" = 3 ]; then
  429. ctrl_c
  430. elif [ "$opcao" != 1 ] || \
  431. [ "$opcao" != 2 ] || \
  432. [ "$opcao" != 3 ]; then
  433. echo -ne "\n$mensagem"
  434. fi
  435. ;;
  436. slackware) # Slackware Linux
  437. sleep 2 && printf "
  438. 1) Slackware 14.2 2) Cancelar
  439. "
  440. sleep 1
  441. echo -ne "\nDigite a sua opção: " && read opcao
  442. if [ "$opcao" = 1 ]; then
  443. echo
  444. # A distro é baixada via axel.
  445. if axel_progresso $slackware $slack; then
  446. sleep 2 ; echo -e "$aviso
  447. " ; exit 0
  448. else
  449. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  450. "
  451. exit 1
  452. fi
  453. elif [ "$opcao" = 2 ]; then
  454. ctrl_c
  455. elif [ "$opcao" != "1" ] || \
  456. [ "$opcao" != "2" ]; then
  457. echo -ne "\n$mensagem" && exit
  458. fi
  459. ;;
  460. ubuntu) # Ubuntu
  461. sleep 2 && printf "
  462. 1) Ubuntu LTS 2) Ubuntu Server LTS
  463. 3) Cancelar
  464. "
  465. sleep 1
  466. echo -ne "\nDigite a sua opção: " && read opcao
  467. if [ "$opcao" = 1 ]; then
  468. echo
  469. # A distro é baixada via axel.
  470. if axel_progresso $ubuntults $buntu; then
  471. sleep 2 ; echo -e "$aviso
  472. " ; exit 0
  473. else
  474. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  475. "
  476. exit 1
  477. fi
  478. elif [ "$opcao" = 2 ]; then
  479. echo
  480. # A distro é baixada via axel.
  481. if axel_progresso $ubuntuserverlts $buntuserver; then
  482. sleep 2 ; echo -e "$aviso
  483. " ; exit 0
  484. else
  485. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  486. "
  487. exit 1
  488. fi
  489. elif [ "$opcao" = 3 ]; then
  490. ctrl_c
  491. elif [ "$opcao" != "1" ] || \
  492. [ "$opcao" != "2" ] || \
  493. [ "$opcao" != "3" ]; then
  494. echo -ne "\n$mensagem" && exit
  495. fi
  496. ;;
  497. gentoo) # Gentoo
  498. sleep 2 && printf "
  499. 1) Gentoo 2) Stage3
  500. 3) Cancelar
  501. "
  502. sleep 1
  503. echo -ne "\nDigite a sua opção: " && read opcao
  504. if [ "$opcao" = 1 ]; then
  505. echo
  506. # A distro é baixada via axel.
  507. if axel_progresso $gentoo $gen; then
  508. sleep 2 ; echo -e "$aviso
  509. " ; exit 0
  510. else
  511. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  512. "
  513. exit 1
  514. fi
  515. elif [ "$opcao" = 2 ]; then
  516. echo
  517. # A distro é baixada via axel.
  518. if axel_progresso $stage3 $stage; then
  519. sleep 2 ; echo -e "$aviso
  520. " ; exit 0
  521. else
  522. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  523. "
  524. exit 1
  525. fi
  526. elif [ "$opcao" = 3 ]; then
  527. ctrl_c
  528. elif [ "$opcao" != "1" ] || \
  529. [ "$opcao" != "2" ] || \
  530. [ "$opcao" != "3" ]; then
  531. echo -ne "\n$mensagem" && exit 1
  532. fi
  533. ;;
  534. trisquel) # Trisquel GNU/Linux
  535. sleep 2 && printf "
  536. 1) Trisquel GNU/Linux 2) Cancelar
  537. "
  538. sleep 1
  539. echo -ne "\nDigite a sua opção: " && read opcao
  540. if [ "$opcao" = 1 ]; then
  541. echo
  542. # A distro é baixada via axel.
  543. if axel_progresso $trisquel $trisquellibre; then
  544. sleep 2 ; echo -e "$aviso
  545. " ; exit 0
  546. else
  547. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  548. "
  549. exit 1
  550. fi
  551. elif [ "$opcao" = 2 ]; then
  552. ctrl_c
  553. elif [ "$opcao" != "1" ] || \
  554. [ "$opcao" != "2" ]; then
  555. echo -ne "\n$mensagem" && exit 1
  556. fi
  557. ;;
  558. deepin) # Deepin Linux
  559. sleep 2 && printf "
  560. 1) Deepin Linux 2) Cancelar
  561. "
  562. sleep 1
  563. echo -ne "\nDigite a sua opção: " && read opcao
  564. if [ "$opcao" = 1 ]; then
  565. echo
  566. # A distro é baixada via axel.
  567. if axel_progresso $deepin $deepinch; then
  568. sleep 2 ; echo -e "$aviso
  569. " ; exit 0
  570. else
  571. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  572. "
  573. exit 1
  574. fi
  575. elif [ "$opcao" = 2 ]; then
  576. ctrl_c
  577. elif [ "$opcao" != "1" ] || \
  578. [ "$opcao" != "2" ]; then
  579. echo -ne "\n$mensagem" && exit 1
  580. fi
  581. ;;
  582. manjaro) # Manjaro
  583. sleep 2 && printf "
  584. 1) Manjaro Xfce 2) Manjaro GNOME
  585. 3) Manjaro KDE 4) Manjaro Architect
  586. 5) Cancelar
  587. "
  588. sleep 1
  589. echo -ne "\nDigite a sua opção: " && read opcao
  590. if [ "$opcao" = 1 ]; then
  591. echo
  592. # A distro é baixada via axel.
  593. if axel_progresso $manjaro_rato $manjaxfce; then
  594. sleep 2 ; echo -e "$aviso
  595. " ; exit 0
  596. else
  597. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  598. "
  599. exit 1
  600. fi
  601. elif [ "$opcao" = 2 ]; then
  602. echo
  603. # A distro é baixada via axel.
  604. if axel_progresso $manjaro_pe $manjagnome; then
  605. sleep 2 ; echo -e "$aviso
  606. " ; exit 0
  607. else
  608. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  609. "
  610. exit 1
  611. fi
  612. elif [ "$opcao" = 3 ]; then
  613. echo
  614. # A distro é baixada via axel.
  615. if axel_progresso $manjaro_plasma $manjakde; then
  616. sleep 2 ; echo -e "$aviso
  617. " ; exit 0
  618. else
  619. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  620. "
  621. exit 1
  622. fi
  623. elif [ "$opcao" = 4 ]; then
  624. echo
  625. # A distro é baixada via axel.
  626. if axel_progresso $manjaro_construtor $manjaconstrutor; then
  627. sleep 2 ; echo -e "$aviso
  628. " ; exit 0
  629. else
  630. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  631. "
  632. exit 1
  633. fi
  634. elif [ "$opcao" = 5 ]; then
  635. sleep 2s && ctrl_c
  636. elif [ "$opcao" != "1" ] || \
  637. [ "$opcao" != "2" ] || \
  638. [ "$opcao" != "3" ] || \
  639. [ "$opcao" != "4" ] || \
  640. [ "$opcao" != "5" ]; then
  641. echo -ne "\n$mensagem"
  642. fi
  643. ;;
  644. elementary) # elementary OS
  645. sleep 2 && printf "
  646. 1) elementaryOS 2) Cancelar
  647. "
  648. sleep 1
  649. echo -ne "\nDigite a sua opção: " && read opcao
  650. if [ "$opcao" = 1 ]; then
  651. echo
  652. # A distro é baixada via axel.
  653. if axel_progresso $elementary $eos; then
  654. sleep 2 ; echo -e "$aviso
  655. " ; exit 0
  656. else
  657. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  658. "
  659. exit 1
  660. fi
  661. elif [ "$opcao" = 2 ]; then
  662. ctrl_c
  663. elif [ "$opcao" != "1" ] || \
  664. [ "$opcao" != "2" ]; then
  665. echo -ne "\n$mensagem" && exit 1
  666. fi
  667. ;;
  668. puppy) # Puppy Linux
  669. sleep 2 && printf "
  670. 1) Puppy Linux 2) Cancelar
  671. "
  672. sleep 1
  673. echo -ne "\nDigite a sua opção: " && read opcao
  674. if [ "$opcao" = 1 ]; then
  675. echo
  676. # A distro é baixada via axel.
  677. if axel_progresso $puppy $chibi_puppy; then
  678. sleep 2 ; echo -e "$aviso
  679. " ; exit 0
  680. else
  681. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  682. "
  683. exit 1
  684. fi
  685. elif [ "$opcao" = 2 ]; then
  686. ctrl_c
  687. elif [ "$opcao" != "1" ] || \
  688. [ "$opcao" != "2" ]; then
  689. echo -ne "\n$mensagem" && exit 1
  690. fi
  691. ;;
  692. solus) # Solus
  693. sleep 2 && printf "
  694. 1) Solus - Budgie 2) Cancelar
  695. "
  696. sleep 1
  697. echo -ne "\nDigite a sua opção: " && read opcao
  698. if [ "$opcao" = 1 ]; then
  699. echo
  700. # A distro é baixada via axel.
  701. if axel_progresso $solus $sol; then
  702. sleep 2 ; echo -e "$aviso
  703. " ; exit 0
  704. else
  705. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  706. "
  707. exit 1
  708. fi
  709. elif [ "$opcao" = 2 ]; then
  710. ctrl_c
  711. elif [ "$opcao" != "1" ] || \
  712. [ "$opcao" != "2" ]; then
  713. echo -ne "\n$mensagem" && exit 1
  714. fi
  715. ;;
  716. parrot) # Parrot
  717. sleep 2 && printf "
  718. 1) Parrot - Security 2) Cancelar
  719. "
  720. sleep 1
  721. echo -ne "\nDigite a sua opção: " && read opcao
  722. if [ "$opcao" = 1 ]; then
  723. echo
  724. # A distro é baixada via axel.
  725. if axel_progresso $parrot_sec $pa_security; then
  726. sleep 2 ; echo -e "$aviso
  727. " ; exit 0
  728. else
  729. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  730. "
  731. exit 1
  732. fi
  733. elif [ "$opcao" = 2 ]; then
  734. ctrl_c
  735. elif [ "$opcao" != "1" ] || \
  736. [ "$opcao" != "2" ]; then
  737. echo -ne "\n$mensagem" && exit 1
  738. fi
  739. ;;
  740. sabayon) # Sabayon
  741. sleep 2 && printf "
  742. 1) Sabayon - MATE 2) Cancelar
  743. "
  744. sleep 1
  745. echo -ne "\nDigite a sua opção: " && read opcao
  746. if [ "$opcao" = 1 ]; then
  747. echo
  748. # A distro é baixada via axel.
  749. if axel_progresso $sabayon_mate $sabamate; then
  750. sleep 2 ; echo -e "$aviso
  751. " ; exit 0
  752. else
  753. echo -e " ${vermelho}${negrito} Falha no download. Tente novamente.${fecha_cor}
  754. "
  755. exit 1
  756. fi
  757. elif [ "$opcao" = 2 ]; then
  758. ctrl_c
  759. elif [ "$opcao" != "1" ] || \
  760. [ "$opcao" != "2" ]; then
  761. echo -ne "\n$mensagem" && exit 1
  762. fi
  763. ;;
  764. # Processo de gravação em USB.
  765. -w|--write)
  766. shift
  767. [ "$1" = "archlinux" ] && write_arch || \
  768. [ "$1" = "artixlinux" ] && write_artix || \
  769. [ "$1" = "debian" ] && write_debian || \
  770. [ "$1" = "fedora" ] && write_fedora || \
  771. [ "$1" = "mint" ] && write_mint || \
  772. [ "$1" = "centos" ] && write_centos || \
  773. [ "$1" = "opensuse" ] && write_opensuse || \
  774. [ "$1" = "slackware" ] && write_slackware || \
  775. [ "$1" = "ubuntu" ] && write_ubuntu || \
  776. [ "$1" = "gentoo" ] && write_gentoo || \
  777. [ "$1" = "trisquel" ] && write_trisquel || \
  778. [ "$1" = "deepin" ] && write_deepin || \
  779. [ "$1" = "manjaro" ] && write_manjaro || \
  780. [ "$1" = "elementary" ] && write_elementary || \
  781. [ "$1" = "puppy" ] && write_puppy || \
  782. [ "$1" = "solus" ] && write_solus || \
  783. [ "$1" = "parrot" ] && write_parrot || \
  784. [ "$1" = "sabayon" ] && write_sabayon
  785. ;;
  786. # Sincronização.
  787. -s|--sync)
  788. axel -q $hash -o /tmp/
  789. source /tmp/.hash
  790. if [ "$lancamento" = "1.8" ]; then
  791. echo -ne "
  792. \n\t${azul}${negrito}• • •\t${verde}ǁ Distro Down está atualizado. ǁ${fecha_cor}\n"
  793. sleep 3 && printf "\n—————————————————————————————————————————————————\n"
  794. sleep 2 && echo -ne "\n\t\t${vermelho}Saindo...${fecha_cor}\n\n"
  795. rm /tmp/.hash
  796. sleep 2 && exit 0
  797. else
  798. sudo echo -ne "
  799. \t${verde}${negrito}Atualizando para a nova versão...\
  800. ${fecha_cor}" && sincro
  801. echo; printf "
  802. \tSincronização completa.\n\n"
  803. rm /tmp/.hash
  804. fi
  805. ;;
  806. *)
  807. echo -ne "\n\t${vermelho}${negrito}$mensagem${fecha_cor}\n"
  808. ;;
  809. esac
  810. #-----------------------------------------------------------------------