[mythtvnz] EPG script fails to update mythfilldatabase
Jonathan Hoskin
jonathan.hoskin at gmail.com
Mon Jun 6 02:09:20 BST 2016
On Mon, Jun 6, 2016 at 11:00 AM, Paulgir <paulgir at gmail.com> wrote:
>
>
> #! /bin/bash
> wget http://epg.org.nz/freeview.xml.gz
> gzip -d freeview.xml.gz
> mythfilldatabase --update --file --sourceid 1 --xmlfile freeview.xml
> rm freeview.xml
> exit
>
Hi Paul,
The coding pattern in that script is problematic, as if you ever end
up with an invalid freeview.xml.gz, the script will never attempt to
clean it up.
E.g. if 'wget' fails, then 'gzip -d' fails, then the 'rm' at the end
will be trying to remove a file that doesn't exist.
Here's some suggestions:
1. Use 'wget' with the '-O - ' option, and pipe the output straight
through 'gzip -d' to generate the xml file on one line
2. Use 'rm -f' so the script won't throw errors if the file doesn't exist
3. Use '#! /bin/bash -e', so that the script will exit at the first
failed command, rather than blindly carrying on
3. Finally, you could use a 'trap' function, which will ensure the
clean up code is run at script exit, regardless of failures
Here's a quick example:
#! /bin/bash -e
function clean_up {
rm -f freeview.xml
}
trap clean_up EXIT
wget -q http://epg.org.nz/freeview.xml.gz -O - | gzip -d > freeview.xml
mythfilldatabase --update --file --sourceid 1 --xmlfile freeview.xml
Cheers,
Jonathan
More information about the mythtvnz
mailing list