mirror of
https://github.com/letscontrolit/ESPEasy.git
synced 2026-07-27 19:57:38 +00:00
72 lines
1.4 KiB
Bash
Executable File
72 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
PROG=$( basename $0 .sh )
|
|
TMP="/tmp/${PROG}-$$/"
|
|
|
|
[[ "$1" == "-r" ]] && REBOOTESP="Y" && shift
|
|
H="$1"; shift
|
|
FILE="$1"
|
|
|
|
if [[ $# -lt 1 ]] || [[ ! -r "${FILE}" ]]
|
|
then
|
|
echo "Usage: $PROG [-r] NameOrIP file [ file ... ]" >&2
|
|
exit 2
|
|
fi
|
|
|
|
#
|
|
# put CURLARGS='-u username:password' in ~/.espeasy
|
|
#
|
|
if [[ -r "${HOME}/.espeasy" ]]
|
|
then
|
|
source "${HOME}/.espeasy"
|
|
else
|
|
echo "$PROG: Cannot read ${HOME}/.espeasy" >&2
|
|
exit 1
|
|
fi
|
|
|
|
mkdir "${TMP}" || exit 2
|
|
|
|
for FILE in $*
|
|
do
|
|
for NAME in notification.dat security.dat config.dat rules1.txt rules2.txt rules3.txt rules4.txt esp.css
|
|
do
|
|
if [[ ${FILE} =~ "${NAME}" ]]
|
|
then
|
|
MATCH="${NAME}"
|
|
echo -n "$PROG: File name ${NAME}: "
|
|
cp -v "${FILE}" "${TMP}/${MATCH}"
|
|
break;
|
|
fi
|
|
done
|
|
[[ -z "${MATCH}" ]] && echo "$PROG: Cannot determine name of $FILE ... Skipping"
|
|
done
|
|
|
|
cd "${TMP}" || exit 2
|
|
|
|
for FILE in *
|
|
do
|
|
echo -n "Upload $FILE: "
|
|
if curl ${CURLARGS} --progress-bar -X POST -F "name=@${FILE}" -F "type=file" "http://${H}/upload" | grep -q "Upload OK"
|
|
then
|
|
echo "$PROG: $FILE upload OK "
|
|
else
|
|
echo "$PROG: $FILE upload FAILED" >&2
|
|
fi
|
|
done
|
|
if [[ -n "${REBOOTESP}" ]]
|
|
then
|
|
echo -n "Reboot: "
|
|
if curl ${CURLARGS} --progress-bar "http://${H}/?cmd=reboot" | grep -q '>OK'
|
|
then
|
|
echo "$PROG: Reboot OK "
|
|
else
|
|
echo "$PROG: Reboot FAILED" >&2
|
|
fi
|
|
fi
|
|
cd
|
|
#echo "$PROG: Please do a manual rm -rf $TMP"
|
|
|
|
rm -rf "${TMP}"
|
|
|
|
# vim:ts=4:sw=4
|
|
|