Pesquisa de Pacotes - Repo Oficial

Assuntos sobre desenvolvimento do sistema.
Avatar do usuário
gnew
Administrador
Mensagens: 128
Registrado em: 18/Fev/2019, 06:32
Localização: Tatuí SP
Contato:

Pesquisa de Pacotes - Repo Oficial

Mensagem por gnew » 20/Fev/2019, 11:57

Pessoal, to desenvolvendo um script para pesquisas de pacotes 8-) no repositório oficial em http://mazonos.com/packages/.
O script basicamente faz o download de uma lista de pacotes e com isso você pode estar pesquisando se existe ou não o software já empacotado, e se quer fazer o download e instalar o mesmo.

Para utilizar faça o download do script em anexo:

Código: Selecionar todos

# chmod +x search-mazon.sh
# ./search-mazon.sh --help
Opções de uso:

Código: Selecionar todos

# ./search-mazon.sh -u   ### PARA UPDATE DO REPOSITORIO
# ./search-mazon.sh <packagename>   ### PESQUISA DO PACOTE / DOWNLOAD / INSTALL

Código: Selecionar todos

#!/bin/bash
#######################################################
#      search packages Mazon OS - version 0.0.1       #
#                                                     #
#      @utor: Diego Sarzi <diegosarzi@gmail.com>      #
#      created: 2019/02/20          licence: MIT      #
#######################################################

VARLIB="/var/lib/search-mazon"

helpMe(){
	echo -e "usage: search-mazon [-u] [--update] or <package> \n \
------ LIST OPTIONS ------- \n \
-u, --update     Update list packages in repositore online. Need Internet.\n \
ex: search-mazon nano # for search.
    search-mazon -u # for update list."
	exit
}

if [[ $1 = "" ]] || [ $1 = "-h" ] || [ $1 = "--help" ]; then
	helpMe
fi

# update
#########################
## check folder /var/lib/search-mazon exist
if [ $1 = "-u" ] || [ $1 = "--update" ]; then
	if [ -e "$VARLIB" ]; then
		cd $VARLIB
	else
		mkdir $VARLIB
		cd $VARLIB
	fi
	## Clean folder
	echo "Clean /var/lib/search-mazon/"
	rm -f *

	## Updating FOLDER from website mazonos.com
	echo "Updating Folders..."
	printf "folders"
	wget -c -q http://mazonos.com/packages
	echo " [OK]"
	echo "Updating Packages..."
	# capture folders
	###########################
	folders=$(cat $VARLIB/packages | grep href | sed 's/      <a href="//g' | cut -d/ -f1 | more +2)
	cleanFolders=$(echo $folders | sed 's/<pre>?C=N;O=D">Name< //g')

	## Updating PACKAGES from website mazonos.com
	# capture files
	##########################
	for i in $cleanFolders; do
		declare -g ii=$i
		printf "$i"
		wget -c -q "http://mazonos.com/packages/$i"
		echo " [OK]"
		package=$(cat "$VARLIB/$i" | grep href | sed 's/      <a href="//g' | cut -d/ -f1 | sed 's/">.*<//g' | grep -v sha256 | more +2)
		cleanPackages=$(echo $package | sed 's/<pre>?C=N;O=D//g')

		## Generate list in /var/search-mazon/list
		for p in $cleanPackages; do
			echo "$ii/$p" >> list
		done
	done

	echo "All packages updated! Use: # search-mazon <package> for searching."

	exit
fi

# search
#########################
## Search in list package used in command.
pkg=$(grep $1 $VARLIB/list)
declare -g pkgInstall=$(echo $pkg | cut -d"/" -f2)
declare -g pkgNumber=0

# Check package exist.
if [[ $pkg != "" ]]; then
	echo "--------------- RESULT ----------------"
	## Show results
	for i in $pkg; do
		echo -e "\e[5m\e[42m\e[30m-FOUND-\e[0m $i"
		echo "---------------------------------------"
		pkgCheckNumber=$(($pkgCheckNumber+1))
	done
	
	echo "found $pkgCheckNumber files."

	## Check number packages.
	if [ $pkgCheckNumber = '1' ]; then
		for i in $pkg; do
			declare -g ee=$i
			echo ""

			## Download package.
			read -p "Download? [Y/n]" download
			if [ $download = 'y' ] || [ $download = 'Y' ] || [[ $download = "" ]]; then
				cd /tmp/
				wget "http://mazonos.com/packages/$i"
				echo ""

				# Install Package.
				read -p "Install $ee ? [Y/n]" inst
				if [ $inst = 'y' ] || [ $inst = 'Y' ] || [[ $inst = "" ]]; then
					banana -i $pkgInstall
				fi
			fi
		done
	else
		echo "Choose one package for download or install."
	fi
else
	echo "No packages found!"
fi

# return folder
#########################
cd - >/dev/null 2>&1
Qualquer dúvida deixe nos comentários. :ugeek:
Anexos
search-mazon.sh
(3.07 KiB) Baixado 18 vezes
DA5F BEB3 34F9 F05C 8BFA D94A DC7E 3F89 7537 3E4E
-------------------------------------------------
http://mazonos.com/ 8-)
https://github.com/diegosarzi/
irc.freenode.net #mazonos
Avatar do usuário
lordello
Mensagens: 17
Registrado em: 19/Fev/2019, 02:11

Re: Pesquisa de Pacotes - Repo Oficial

Mensagem por lordello » 10/Mar/2019, 17:26

Relatos do mzsearch versão 0.0.1

O comando mzsearch --version resulta em uma tela muito louca.

Código: Selecionar todos

root [ /lib/modules/4.18.5-mazonos ]# mzsearch --version
--------------- RESULT ----------------
-FOUND- grep
---------------------------------------
-FOUND- (GNU
---------------------------------------
-FOUND- grep)
---------------------------------------
-FOUND- 3.1
---------------------------------------
-FOUND- Copyright
---------------------------------------
-FOUND- (C)
---------------------------------------
-FOUND- 2017
---------------------------------------
-FOUND- Free
---------------------------------------
-FOUND- Software
---------------------------------------
-FOUND- Foundation,
---------------------------------------
-FOUND- Inc.
---------------------------------------
-FOUND- Licença
---------------------------------------
-FOUND- GPLv3+:
---------------------------------------
-FOUND- GNU
---------------------------------------
-FOUND- GPL
---------------------------------------
-FOUND- versão
---------------------------------------
-FOUND- 3
---------------------------------------
-FOUND- ou
---------------------------------------
-FOUND- superior
---------------------------------------
-FOUND- <http://gnu.org/licenses/gpl.html>.
---------------------------------------
-FOUND- Este
---------------------------------------
-FOUND- é
---------------------------------------
-FOUND- um
---------------------------------------
-FOUND- software
---------------------------------------
-FOUND- livre:
---------------------------------------
-FOUND- você
---------------------------------------
-FOUND- é
---------------------------------------
-FOUND- livre
---------------------------------------
-FOUND- para
---------------------------------------
-FOUND- alterá-lo
---------------------------------------
-FOUND- e
---------------------------------------
-FOUND- redistribuí-lo.
---------------------------------------
-FOUND- NÃO
---------------------------------------
-FOUND- HÁ
---------------------------------------
-FOUND- GARANTIAS,
---------------------------------------
-FOUND- na
---------------------------------------
-FOUND- máxima
---------------------------------------
-FOUND- extensão
---------------------------------------
-FOUND- permitida
---------------------------------------
-FOUND- por
---------------------------------------
-FOUND- lei.
---------------------------------------
-FOUND- Escrito
---------------------------------------
-FOUND- por
---------------------------------------
-FOUND- Mike
---------------------------------------
-FOUND- Haertel
---------------------------------------
-FOUND- e
---------------------------------------
-FOUND- outros,
---------------------------------------
-FOUND- veja
---------------------------------------
-FOUND- <http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.
---------------------------------------
found 49 files.
Choose one package for download or install.
root [ /lib/modules/4.18.5-mazonos ]#
O mzsearch não verifica se o arquivo já foi baixado, então ele tenta baixar o arquivo todas as vezes que for executado.
Efetuei a instalação do linux_sources três vezes e ele criou três arquivos no pasta /tmp linux_sources-4.18.5-1.mz, linux_sources-4.18.5-1.mz.1 e linux_sources-4.18.5-1.mz.2. Enquanto ele baixava o linux_sources-4.18.5-1.mz.2 eu removi os outros em outro terminal e a instalação falhou, pois a pesar dele estar baixando o arquivo linux_sources-4.18.5-1.mz.2 o mzsearch passa o arquivo linux_sources-4.18.5-1.mz para o bananapkg.

Código: Selecionar todos

root [ /lib/modules/4.18.5-mazonos ]# mzsearch sources
--------------- RESULT ----------------
-FOUND- base/linux_sources-4.18.5-1.mz
---------------------------------------
found 1 files.

Download? [Y/n]

--2019-03-10 14:06:53--  http://mazonos.com/packages/base/linux_sources-4.18.5-1.mz
Resolvendo mazonos.com... 107.180.51.6
Conectando-se a mazonos.com|107.180.51.6|:80... conectado.
A requisição HTTP foi enviada, aguardando resposta... 200 OK
Tamanho: 106500832 (102M)
Salvando em: “linux_sources-4.18.5-1.mz.2”

linux_sources-4.18.5-1.mz.2                                          100%[====================================================================================================================================================================>] 101.57M  4.08MB/s    em 28s     

2019-03-10 14:07:21 (3.65 MB/s) - “linux_sources-4.18.5-1.mz.2” salvo [106500832/106500832]


Install base/linux_sources-4.18.5-1.mz ? [Y/n]
[ERROR] Do not cheat me! This Package dont exist.

root [ /lib/modules/4.18.5-mazonos ]#
Avatar do usuário
gnew
Administrador
Mensagens: 128
Registrado em: 18/Fev/2019, 06:32
Localização: Tatuí SP
Contato:

Re: Pesquisa de Pacotes - Repo Oficial

Mensagem por gnew » 11/Mar/2019, 17:36

Muito obrigado pelas suas considerações.
O mzsearch ainda está em desenvolvimento e agradeço muito pelos testes.
Todos os erros foram corrigidos, por favor faça o download novamente e coloque o mzsearch em /sbin/mzsearch
Espero cada vez melhorar o software.
Abrcs
Anexos
mzsearch.sh
(3.37 KiB) Baixado 11 vezes
DA5F BEB3 34F9 F05C 8BFA D94A DC7E 3F89 7537 3E4E
-------------------------------------------------
http://mazonos.com/ 8-)
https://github.com/diegosarzi/
irc.freenode.net #mazonos
Avatar do usuário
lordello
Mensagens: 17
Registrado em: 19/Fev/2019, 02:11

Re: Pesquisa de Pacotes - Repo Oficial

Mensagem por lordello » 13/Mar/2019, 23:47

Oi Diego, o problema do download continua.
Essa é a minha sugestão para corrigir o problema:

Código: Selecionar todos

--- /sbin/mzsearch	2019-03-13 18:50:54.694000000 -0300
+++ mzsearch.sh	2019-03-13 20:40:59.670000000 -0300
@@ -115,7 +115,7 @@
 			echo ""
 			if [[ $download = "" ]] || [ $download = "Y" ] || [ $download = "y" ]; then
 				cd /tmp/
-				wget "http://mazonos.com/packages/$i"
+				wget "http://mazonos.com/packages/$i" -O "${i/*\/}"
 				echo ""
 
 				# Install Package.
No futuro você deveria pensar em usar uma abordagem mais parecida com o banapkg, usando case para reconhecer os parâmetros passados ao programa, pois na estrutura atual qualquer coisa fora do padrão passado ao mzsearch cai como parâmetro do grep na variável pkg.

Código: Selecionar todos

root [ ~ ]# mzsearch --teste
grep: opção não reconhecida “--teste”
Uso: grep [OPÇÃO]... PADRÃO [ARQUIVO]...
Experimente "grep --help" para mais informações.
No packages found!
root [ ~ ]# 
Responder