Codice: Seleziona tutto
[ste@manjaro selfextract.k09kuVOYbL]$ cd pmapp/
[ste@manjaro pmapp]$ ls
poste setup.sh
[ste@manjaro pmapp]$ sudo ./setup.sh
Usage: setup.sh [-i|-u|-h]
-i install pmapp:// handler
-u uninstall pmapp:// handler
--current-user (un)install for current user only
--all-users (un)install for all users
-h display this help and exit
[ste@manjaro pmapp]$ sudo ./setup.sh --all-users
./setup.sh: line 312: usageall_users: command not found
[ste@manjaro pmapp]$ sudo ./setup.sh -i
Perform the operation for:
1) current user only
2) all users
Choose: 2
[ste@manjaro pmapp]$ ls /opt/
VBoxGuestAdditions-6.1.30
[ste@manjaro pmapp]$ ls
poste setup.sh
[ste@manjaro pmapp]$ ls poste
etc opt pmapp.png
[ste@manjaro pmapp]$ ls poste/opt/ffextprot/
etc lib
[ste@manjaro pmapp]$ ls poste/opt/ffextprot/lib/
ld.so libkrb5.so.3 libnss_dns.so.2 libreadline.so.6 libssl.so.10 libutil.so.1
libk5crypto.so.3 libnsl.so.1 libpython2.7.so.1.0 libresolv.so.2 libtinfo.so.5 Python2.7
[ste@manjaro pmapp]$ ls poste/opt/ffextprot/etc/
ebkey js paths
[ste@manjaro pmapp]$ ls poste/etc/
cainfo configuration.conf ebkey libbit4xpki.so libbit4xpki.so.conf locale paths
EDIT: forse perché su manjaro non va avanti ma non mostra nemmeno l'errore.
Codice: Seleziona tutto
cat setup.sh
#!/usr/bin/env bash
#set -x
usage()
{
echo "Usage: $(basename "$0") [-i|-u|-h]"
echo " -i install ${SCHEME}:// handler"
echo " -u uninstall ${SCHEME}:// handler"
echo " --current-user (un)install for current user only"
echo " --all-users (un)install for all users"
echo " -h display this help and exit"
echo ""
exit 1
}
check_distro()
{
grep '="Ubuntu' /etc/lsb-release >/dev/null 2>&1 && { DISTRO='Ubuntu'; return 0; }
grep 'CentOS' /etc/centos-release >/dev/null 2>&1 && { DISTRO='CentOS'; return 0; }
grep 'Fedora' /etc/fedora-release >/dev/null 2>&1 && { DISTRO='Fedora'; return 0; }
exit 1
}
check_pcscd()
{
pcscd -v
if [ $? -ne 0 ]; then
echo "You need install or update \"pcscd\" package to works!"
if [ "$DISTRO" == "Ubuntu" ]; then
echo "Install it with following command please: sudo apt-get install pcscd"
else
echo "Install it with following command please: sudo yum install pcsc-lite"
fi
exit 1
fi
}
check_bitness()
{
BITNESS=$(uname -m)
}
run_as_root()
{
case "${DISTRO}" in
"Ubuntu"|"CentOS")
if [ "$(id -u)" -ne 0 ]; then
exec sudo -E "$(readlink -f "$0")" "$@"
exit
fi
;;
"Fedora")
if [ "$(id -u)" -ne 0 ]; then
# workaround: "$@" produce una errata separazione dei parametri,
# $* funziona, ma solo se nessuno dei parametri contiene spazi
exec sudo -E "$(readlink -f "$0")" "$@"
if [ $? -ne 0 ]; then
su -c "$(readlink -f "$0") $*"
fi
exit
fi
;;
"")
echo "Unknown Linux distribution"
exit 1
;;
*)
echo "${DISTRO} distribution not supported"
exit 1
;;
esac
}
run_cmd_as_root()
{
case "${DISTRO}" in
"Ubuntu"|"CentOS")
if [ "$(id -u)" -ne 0 ]; then
sudo "$@"
return $?
else
"$@"
return $?
fi
;;
"Fedora")
if [ "$(id -u)" -ne 0 ]; then
# workaround: "$@" produce una errata separazione dei parametri,
# $* funziona, ma solo se nessuno dei parametri contiene spazi
sudo -E "$@"
if [ $? -ne 0 ]; then
su -c "$*"
fi
return $?
else
"$@"
return $?
fi
;;
"")
echo "Unknown Linux distribution"
return 1
;;
*)
echo "${DISTRO} distribution not supported"
return 1
;;
esac
}
choose_target()
{
echo "Perform the operation for:"
echo "1) current user only"
echo "2) all users"
while true;
do
read -e -p "Choose: " CHOICE
case ${CHOICE} in
1)
${COMMAND}current_user "$@" --current-user
break
;;
2)
${COMMAND}all_users "$@" --all-users
break
;;
*)
echo "Please, choose 1 or 2"
;;
esac
done
}
copy()
{
mkdir -p "$1"
cp -R "${PACKAGE}" "$1"
}
register_handler()
{
if [ -z "${SCHEME}" ]; then
echo "Protocol scheme undefined"
exit 1
fi
DESKTOP_FILE="$1/${SCHEME}.desktop"
echo "[Desktop Entry]">"${DESKTOP_FILE}"
echo "Encoding=UTF-8">>"${DESKTOP_FILE}"
echo "Version=1.0">>"${DESKTOP_FILE}"
echo "Type=Application">>"${DESKTOP_FILE}"
echo "StartupNotify=true">>"${DESKTOP_FILE}"
echo "Terminal=false">>"${DESKTOP_FILE}"
echo "Categories=Application;Utility;Network;">>"${DESKTOP_FILE}"
echo "MimeType=x-scheme-handler/${SCHEME}">>"${DESKTOP_FILE}"
echo "Name=pmapp">>"${DESKTOP_FILE}"
echo "Comment=Launch BPIOL miniapp">>"${DESKTOP_FILE}"
echo "Exec=\"$2/${SCHEME}/${DISTNAME}/bin/pmapp.exe\" %u">>"${DESKTOP_FILE}"
echo "Icon=$2/${SCHEME}/${DISTNAME}/pmapp.png">>"${DESKTOP_FILE}"
chmod 0644 "${DESKTOP_FILE}"
update-desktop-database "$1" 2>&1
"${DEST}/${SCHEME}/${DISTNAME}"/opt/ffextprot/bin/ffextprot.exe "$3" "${SCHEME}" "${DEST}/${SCHEME}/${DISTNAME}"/bin/pmapp.exe
if [ $? -eq 0 ]; then
echo ""
echo "Firefox bpiol miniapp intent registration successfully"
echo ""
else
echo ""
echo "Firefox bpiol miniapp intent registration failed"
echo ""
fi
}
unregister_handler()
{
if [ -z "${SCHEME}" ]; then
echo "Protocol scheme undefined"
exit 1
fi
DESKTOP_FILE="$1/${SCHEME}.desktop"
rm "${DESKTOP_FILE}"
update-desktop-database "$1" 2>&1
"${DEST}/${SCHEME}/${DISTNAME}"/opt/ffextprot/bin/ffextprot.exe uninstall "${SCHEME}" "$2"
if [ $? -eq 0 ]; then
echo ""
echo "Firefox bpiol miniapp intent unregistration successfully"
echo ""
else
echo ""
echo "Firefox bpiol miniapp intent unregistration failed"
echo ""
fi
}
install_()
{
choose_target "$@"
}
install_current_user()
{
check_distro
check_pcscd
DEST="${HOME}/.bit4id"
copy "${DEST}"
register_handler "${HOME}/.local/share/applications" "${DEST}" currentuser
UNINSTALL="${DEST}/${SCHEME}/uninstall.sh"
echo "#!/usr/bin/env bash">"${UNINSTALL}"
echo "exec \"${DEST}/${SCHEME}/setup.sh\" -u --current-user" >>"${UNINSTALL}"
chmod +x "${UNINSTALL}"
echo ""
echo "Installation complete."
echo "If you wish to uninstall, execute the following command:"
echo "${UNINSTALL}"
echo ""
}
install_all_users()
{
check_distro
check_pcscd
run_as_root "$@"
DEST=/opt/bit4id
copy "${DEST}"
register_handler /usr/share/applications "${DEST}" allusers
UNINSTALL="${DEST}/${SCHEME}/uninstall.sh"
echo "#!/usr/bin/env bash">"${UNINSTALL}"
echo "exec \"${DEST}/${SCHEME}/setup.sh\" -u --all-users" >>"${UNINSTALL}"
chmod +x "${UNINSTALL}"
echo ""
echo "Installation complete."
echo "If you wish to uninstall, execute the following command:"
echo "${UNINSTALL}"
echo ""
}
uninstall_()
{
choose_target "$@"
}
uninstall_current_user()
{
check_distro
DEST="${HOME}/.bit4id"
unregister_handler "${HOME}/.local/share/applications" currentuser
rm -r "${DEST}/${SCHEME}"
}
uninstall_all_users()
{
check_distro
run_as_root "$@"
DEST=/opt/bit4id
unregister_handler /usr/share/applications allusers
rm -r "${DEST}/${SCHEME}"
}
parseargs()
{
while [ "$1" ]; do
case "$1" in
-i)
COMMAND=install_
;;
--current-user)
TARGET=current_user
;;
--all-users)
TARGET=all_users
;;
--pkcs11)
PKCS11=$2
shift
;;
-u)
COMMAND=uninstall_
;;
-h | *)
usage
;;
esac
shift
done
}
MYPATH=$(cd "$(dirname "$0")"; pwd)
PACKAGE="${MYPATH}"
DISTRO=
COMMAND=usage
TARGET=
SCHEME=pmapp
DISTNAME=poste
parseargs "$@"
${COMMAND}${TARGET} "$@"