Skip to content

Commit

Permalink
Merge pull request #2 from nayutaco/sw_update
Browse files Browse the repository at this point in the history
software update
  • Loading branch information
nayuta-ueno authored Aug 7, 2019
2 parents d47c06d + c269f5b commit 8c5becd
Show file tree
Hide file tree
Showing 10 changed files with 98 additions and 10 deletions.
9 changes: 7 additions & 2 deletions rpi_config.ini
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
[PATH]
PROGDIR=/home/pi/Prog
HOMEDIR=/home/pi
PROGDIR=%(HOMEDIR)s/Prog
COPYNODEDIR=%(HOMEDIR)s/NodeData

PTARMDIR=%(PROGDIR)s/ptarmigan/install
NODEDIR=%(PROGDIR)s/ptarmigan/install/node
EPAPERDIR=%(PROGDIR)s/rpi_epaper
UARTDIR=%(PROGDIR)s/rpi_uart
WEBDIR=%(PROGDIR)s/rpi_web
MAINNET=/boot/RPI_MAINNET

STATIC = %(PROGDIR)s/rpi_web/static

MAINNET=/boot/RPI_MAINNET

[DISP]
NOEPAPER=/boot/RPI_NOEPAPER
LED1=3
Expand Down
8 changes: 7 additions & 1 deletion rpi_config.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
#!/bin/bash
export PROGDIR=/home/pi/Prog
export HOMEDIR=/home/pi
export PROGDIR=${HOMEDIR}/Prog
export PROGORGDIR=${HOMEDIR}/ProgOrg
export UPDATEDIR=${HOMEDIR}/ProgUpd
export COPYNODEDIR=${HOMEDIR}/NodeData

export PTARMDIR=${PROGDIR}/ptarmigan/install
export NODEDIR=${PTARMDIR}/node
export EPAPERDIR=${PROGDIR}/rpi_epaper
Expand All @@ -17,6 +22,7 @@ export APMODE=/boot/RPI_APMODE
export CLIENT=/boot/RPI_CLIENT
export USEWEB=/boot/RPI_USEWEB
export MAINNET=/boot/RPI_MAINNET
export SWUPDATE=/boot/RPI_SWUPDATE

export LED1=3
export LED2=2
Expand Down
2 changes: 1 addition & 1 deletion rpi_prepare.service
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ After=rpi_watchbtn.service
ConditionPathExists=/home/pi/Prog/bin

[Service]
ExecStart=/home/pi/Prog/bin/rpi_start_pre.sh
ExecStart=/home/pi/Prog/bin/rpi_prepare.sh
Type=oneshot
RemainAfterExit=yes
User=pi
Expand Down
4 changes: 2 additions & 2 deletions rpi_start_pre.sh → rpi_prepare.sh
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,8 @@ echo 0 > ${PROGDIR}/start_count.txt

# copy ptarmigan script(update)
cp ${PROGDIR}/bin/ptarmd_script/* ${PTARMDIR}/script/
cp ${PROGDIR}/bin/ptarmd_script/* ${PTARMDIR}/testnet/script/
cp ${PROGDIR}/bin/ptarmd_script/* ${PTARMDIR}/mainnet/script/
cp ${PROGDIR}/bin/ptarmd_script/* ${COPYNODEDIR}/testnet/script/
cp ${PROGDIR}/bin/ptarmd_script/* ${COPYNODEDIR}/mainnet/script/

gpio write ${LED1} ${LED_OFF}
gpio write ${LED2} ${LED_OFF}
2 changes: 1 addition & 1 deletion rpi_ptarm.service
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ After=rpi_prepare.service
ConditionPathExists=/home/pi/Prog/bin

[Service]
ExecStart=/home/pi/Prog/bin/rpi_start.sh
ExecStart=/home/pi/Prog/bin/rpi_ptarm.sh
ExecStop=/home/pi/Prog/ptarmigan/install/ptarmcli -q
Type=simple
Restart=on-failure
Expand Down
3 changes: 2 additions & 1 deletion rpi_start.sh → rpi_ptarm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ else
CHAIN=testnet
fi
rm -f ${NODEDIR}
ln -s ${PTARMDIR}/${CHAIN} ${NODEDIR}
ln -s ${COPYNODEDIR}/${CHAIN} ${NODEDIR}
rm -f ${NODEDIR}/logs/bitcoinj_startup.log
stage_log_add "chain=${CHAIN}"

Expand Down Expand Up @@ -122,6 +122,7 @@ else
exit 0
fi

sudo rm -f ${PROGDIR}/invoice.png ${PROGDIR}/invoice.txt
${UARTPY}&

echo "done: uart"
Expand Down
14 changes: 14 additions & 0 deletions rpi_swupdate.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[Unit]
Description = Nayuta RPi Software Update
After=network.target
ConditionPathExists=/home/pi/Prog/bin

[Service]
ExecStart=/home/pi/Prog/bin/rpi_swupdate.sh
Type=oneshot
User=pi
Group=pi

[Install]
WantedBy=multi-user.target

62 changes: 62 additions & 0 deletions rpi_swupdate.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#!/bin/bash

set -eu

source /home/pi/Prog/bin/rpi_config.sh

blink() {
for i in `seq 1 $1`; do
gpio write ${LED1} ${LED_ON}
gpio write ${LED2} ${LED_ON}
sleep $2
gpio write ${LED1} ${LED_OFF}
gpio write ${LED2} ${LED_OFF}
sleep $2
done
gpio write ${LED1} ${LED_ON}
gpio write ${LED2} ${LED_ON}
}

if [ -f ${NOTSTART} ]; then
exit 0
fi

gpio mode ${LED1} out
gpio mode ${LED2} out
gpio mode ${BTN1} in
gpio mode ${BTN2} in

gpio write ${LED1} ${LED_ON}
gpio write ${LED2} ${LED_ON}

sleep 3

btn1_on=`gpio read ${BTN1}`
btn2_on=`gpio read ${BTN2}`

if [ -f ${SWUPDATE} ] && [ ${btn1_on} -eq 0 ] && [ ${btn2_on} -eq 0 ]; then
echo "begin SW update"
${EPAPERPY} "" "SW update!" &
blink 15 0.1

# /home/pi/ProgUpd.new
sudo rm -rf ${UPDATEDIR}.new
sudo tar jxf ${SWUPDATE} -C ${HOMEDIR}

for dname in bin rpi_epaper rpi_uart rpi_web ptarmigan; do
if [ ! -f ${UPDATEDIR}.new/${dname} ]; then
echo use previous ${dname}
sudo cp -ra ${PROGDIR}/${dname} ${UPDATEDIR}.new/
fi
done

sudo rm -rf ${UPDATEDIR}
sudo mv ${UPDATEDIR}.new ${UPDATEDIR}
rm ${PROGDIR}
ln -s ${UPDATEDIR} ${PROGDIR}
sudo rm ${SWUPDATE}
sync
echo "end SW update"
fi

blink 3 0.3
4 changes: 2 additions & 2 deletions rpi_watchbtn.service
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
[Unit]
Description = Watch Button RPi service
After=network.target
After=rpi_swupdate.service
ConditionPathExists=/home/pi/Prog/bin

[Service]
ExecStart=/home/pi/Prog/bin/watch_btn.sh
ExecStart=/home/pi/Prog/bin/rpi_watchbtn.sh
Type=simple
User=pi
Group=pi
Expand Down
File renamed without changes.

0 comments on commit 8c5becd

Please sign in to comment.