diff --git a/sig-installer-dev b/sig-installer-dev index 896319b..b29f8b7 100755 --- a/sig-installer-dev +++ b/sig-installer-dev @@ -277,14 +277,14 @@ function system.create_user { if ! [[ $(id -u ${_user} 2>/dev/null) ]]; then if [[ "${_opts}" =~ "-r" ]] || [[ "${_opts}" =~ "--system" ]]; then - ${ui}.status info $"Creating system user: %s" ${_user} + ${ui}.status info $"Criando usuário do sistema: %s" ${_user} useradd -M -U -G ${_groups} ${_opts} ${_user} else - ${ui}.status info $"Creating user: %s" ${_user} + ${ui}.status info $"Criando usuário: %s" ${_user} useradd -m -d /home/${_user} -U -G ${_groups} ${_opts} ${_user} fi else - ${ui}.status info $"Updating group membership for user: %s" ${_user} + ${ui}.status info $"Atualizando grupos do usuário: %s" ${_user} usermod -aG ${_groups} ${_user} fi } @@ -576,14 +576,13 @@ function plugin.pyenv { function plugin.pip { local _metadata_cache="${CACHEDIR}" local _version_metadata="${_metadata_cache}/versions.yml" - #local _py_version=${@:1:1} # Retorna com erro se o produto não estiver definido [[ -z "${PRODUCT}" ]] && return 1 local _product_cache="${CACHEDIR}/${PRODUCT}" local __pip="runuser -l ${PRODUCT} -- python -m pip" - local _pip_log="$(mktemp ${_product_cache}/${self}.pip.XXXXX)" + local _pip_log="$(mktemp ${_product_cache}/${self}.pip.XXXXX).log" _pip.download() { for _pkg in ${DOWNLOADS}; do @@ -617,14 +616,17 @@ function plugin.pip { } _pip.install() { - local _pip_opts=" \ - --disable-pip-version-check - " + local \ + _pip_opts="--disable-pip-version-check" \ + _req_file + # Instala pacotes e módulos do python ( ${__pip} ${_pip_opts} install --upgrade --user pip setuptools \ && find "${_product_cache}"/ -maxdepth 1 -name "requirements*.txt" \ - | xargs ${__pip} install -r + | while read _req_file; do \ + ${__pip} install -r ${_req_file} + done ) 2>&1 \ | tee -a ${_pip_log} \ | ${ui}.subprocess.output 10 \ @@ -677,15 +679,20 @@ function installer.download { [[ -z "${_quiet}" ]] && ${ui}.status info $"Fazendo download [${_src}]" #(echo ${_message} | base64 -d \ # | bsdtar --passphrase ${_token_pass} -C $(dirname ${_token}) -xOf - > ${_token} \ + local _err=; (self.get_token > ${_token} \ && chmod 0400 ${_token} \ && mkdir -p $(dirname "${_dst}") \ - && scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \ - -qi ${_token} "${_repo_user}@${_repo_home}/${_src}" "${_dst}" \ + && _err=$(scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \ + -qi ${_token} "${_repo_user}@${_repo_home}/${_src}" "${_dst}" 2>&1) \ && color=green || color=red; \ - ${ui}.color ${color}; \ + ${ui}.tab 2; \ + ${ui}.color ${color} "$(${ui}.item '')"; \ ! [[ "${_quiet}" == "silent" ]] \ - && echo "${_src}" | sed "s/^\(.*\)/\ \ $(${ui}.item '')\1/g"; \ + && ( + echo -n "${_src}"; \ + ! [[ -z "${_err}" ]] && echo " (${_err^})" || echo; + ) ${ui}.color none; \ ) rm -f ${_token} @@ -848,14 +855,14 @@ function product.download { | jq ".${_k}" ) local _file; for _file in ${_files}; do + _file="${_file//\$\{variant\}/${_prod_variant}}" installer.download \ "${_files_root}/config/${PRODUCT}/${_file//\"}" \ "${CACHEDIR}/${PRODUCT}/${_file//\"}" \ --quiet done done - - exit 1 + ${ui}.writeln chmod g+rx,o+rx ${CACHEDIR} #${ui}.status info $"Download concluído." @@ -1033,8 +1040,8 @@ function product.install { product.setup_repos ${REPOS} # -- Instalando pacotes necessários -#DEV## system.install_pkgs ${BUILD_REQUIRES} -#DEV## ${ui}.prompt "Aguarde ou pressione ENTER para continuar ..." -s -t 10 || : + system.install_pkgs ${BUILD_REQUIRES} + ${ui}.prompt "Aguarde ou pressione ENTER para continuar ..." -s -t 10 || : # -- Compilando requisitos não empacotados _builds=$(grep "^local/" ${metadata_cache}/${PRODUCT}.local.build) @@ -1055,17 +1062,14 @@ function product.install { fi ${ui}.subtitle $"Executando plugin: "${_args%@*} ${_callback} ${_k_args//;/\ } + ${ui}.prompt "Aguarde ou pressione ENTER para continuar ..." -s -t 10 || : done + echo "TODO: Configurar produto (function product.configure)" ## -- SIG ----------------------------- # # # Pip modules -# ${ui}.status info $"Instalando produto [%s] ..." "${_name}" -# ${ui}.color gold # for _lib in ${_libs}; do -# _lbpv=$(parsers.yaml ${CACHEDIR}/versions.yml libs.python${_pdpy/.*}.${_lib}) -# runuser -l ${PRODUCT} -- python -m pip install --user \ -# "${CACHEDIR}/${PRODUCT}/${_lib}-${_lbpv#*/}.tar.gz" # if [[ "${_lib}" == "kiwi" ]]; then # _f=/srv/sig/${PRODUCT}/.local/lib/python2.7/site-packages/kiwi/__installed__.py # find $(dirname ${_f})/ -name *.pyc -delete