Tools/ddrxupdates

(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
 
{{public}}
 
{{public}}
 +
 +
= Automagic fetch + execute trusted remote scripts =
 +
== Script ==
 +
Update DEST and REMOTE_URL as necessary
 +
<source lang='bash'>
 +
#!/bin/bash
 +
#
 +
# Update script
 +
#
 +
# * This script will fetch update scripts from REMOTE_URL
 +
# * Update scripts should be named 0.sh.asc, 1.sh.asc, ...
 +
# * The file LAST in DEST will hold the last script downloaded regardless of the success of execution
 +
 +
DEST=/usr/share/heivs/heivsupdate
 +
REMOTE_URL='http://wiki.hevs.ch/uit/index.php5?title=Tools/ddrxupdates/'
 +
REMOTE_URL_END='&action=raw'
 +
mkdir -p $DEST
 +
cd $DEST
 +
 +
# The file named LAST will hold the last update number
 +
# Create it if it does not exist
 +
#
 +
if [ ! -e LAST ]
 +
then
 +
CURRENT=0
 +
echo -n $CURRENT > LAST
 +
fi
 +
CURRENT=`cat LAST`
 +
 +
while [ 1 ]
 +
do
 +
wget -q "$REMOTE_URL$CURRENT.sh.asc$REMOTE_URL_END" -O $CURRENT.sh.asc
 +
if [ ! -e $CURRENT.sh.asc ] || [ ! -s  $CURRENT.sh.asc ]
 +
then
 +
echo nothing new
 +
exit 0
 +
fi
 +
 +
gpg -q --decrypt --output $CURRENT.sh $CURRENT.sh.asc  &> /dev/null
 +
if [ $? -ne 0 ]
 +
then
 +
echo signature invalid
 +
echo signature invalid >> $CURRENT.log
 +
else
 +
echo signature valid >> $CURRENT.log
 +
chmod +x $CURRENT.sh
 +
echo running ./$CURRENT.sh >> $CURRENT.log
 +
./$CURRENT.sh >> $CURRENT.log
 +
fi
 +
 +
rm $CURRENT.sh.asc $CURRENT.sh
 +
 +
((CURRENT++))
 +
echo -n $CURRENT > LAST
 +
done
 +
 +
 +
</source>
 +
 
[[Tools/ddrxupdates/0.sh.asc]]
 
[[Tools/ddrxupdates/0.sh.asc]]
 
[[Tools/ddrxupdates/1.sh.asc]]
 
[[Tools/ddrxupdates/1.sh.asc]]

Revision as of 10:51, 28 August 2013

Automagic fetch + execute trusted remote scripts

Script

Update DEST and REMOTE_URL as necessary

#!/bin/bash
#
# Update script
#
# * This script will fetch update scripts from REMOTE_URL
# * Update scripts should be named 0.sh.asc, 1.sh.asc, ...
# * The file LAST in DEST will hold the last script downloaded regardless of the success of execution
 
DEST=/usr/share/heivs/heivsupdate
REMOTE_URL='http://wiki.hevs.ch/uit/index.php5?title=Tools/ddrxupdates/'
REMOTE_URL_END='&action=raw'
mkdir -p $DEST
cd $DEST
 
# The file named LAST will hold the last update number
# Create it if it does not exist
#
if [ ! -e LAST ]
then
	CURRENT=0
	echo -n $CURRENT > LAST
fi
CURRENT=`cat LAST`
 
while [ 1 ]
do
	wget -q "$REMOTE_URL$CURRENT.sh.asc$REMOTE_URL_END" -O $CURRENT.sh.asc
	if [ ! -e $CURRENT.sh.asc ] || [ ! -s  $CURRENT.sh.asc ]
	then	
		echo nothing new
		exit 0
	fi
 
	gpg -q --decrypt --output $CURRENT.sh $CURRENT.sh.asc  &> /dev/null
	if [ $? -ne 0 ]
	then
		echo signature invalid
		echo signature invalid >> $CURRENT.log
	else
		echo signature valid >> $CURRENT.log
		chmod +x $CURRENT.sh
		echo running ./$CURRENT.sh >> $CURRENT.log
		./$CURRENT.sh >> $CURRENT.log
	fi
 
	rm $CURRENT.sh.asc $CURRENT.sh
 
	((CURRENT++))
	echo -n $CURRENT > LAST
done

Tools/ddrxupdates/0.sh.asc Tools/ddrxupdates/1.sh.asc

Personal tools
Namespaces
Variants
Actions
Navigation
Browse
Toolbox