- finish first version of check_updates
This commit is contained in:
parent
e6857efe04
commit
69fa3fe785
Binary file not shown.
@ -1,11 +1,10 @@
|
||||
{
|
||||
"raspbian": {
|
||||
"interval":"0",
|
||||
"file_name": "raspbian.zip",
|
||||
"file_url":"https://downloads.raspberrypi.org/raspbian_latest",
|
||||
"test_name":"raspbian_release-notes.txt",
|
||||
"test_url":"http://downloads.raspberrypi.org/raspbian/release_notes.txt",
|
||||
"interval":"5",
|
||||
"file_name": "",
|
||||
"test_name":"",
|
||||
"test_sha256":"",
|
||||
"last_check":""
|
||||
}
|
||||
}
|
||||
|
BIN
dist/raspbian.zip
vendored
Normal file
BIN
dist/raspbian.zip
vendored
Normal file
Binary file not shown.
346
dist/raspbian_release-notes.txt
vendored
Normal file
346
dist/raspbian_release-notes.txt
vendored
Normal file
@ -0,0 +1,346 @@
|
||||
2018-11-13:
|
||||
* Two versions of image created - "base" image has no optional software packages included; "full" image has all optional packages
|
||||
- Removed from "base" image - LibreOffice, Thonny, Scratch, Scratch 2, Sonic Pi, Minecraft, Python Games, SmartSim, SenseHAT Emulator
|
||||
- Added to "full" image - Mathematica, BlueJ, Greenfoot, Node-RED, Claws Mail, VNC Viewer
|
||||
* Python Games and SmartSim added to Recommended Software
|
||||
* VLC media player with VideoCore hardware acceleration included in image
|
||||
* Version 3.0.5 of Thonny included
|
||||
* Modifications to LXDE components to enable local configuration to override global configuration correctly
|
||||
* Modifications to Appearance Settings to support above configuration changes
|
||||
* Modifications to various initial config defaults and relevant package to support above configuration changes
|
||||
* Selecting default option in Appearance Settings now deletes relevant local configuration files
|
||||
* PiX theme modified so that all changes made in Appearance Settings are in override files rather than in theme files
|
||||
* Design of scrollbar buttons changed
|
||||
* Image Viewer moved into Graphics category on main menu
|
||||
* Recommended Software now installs LibreOffice language support files if needed, and suggests reboot if needed
|
||||
* Latest version of Pepper Flash plugin included
|
||||
* Chromium h264ify plugin permissions set correctly by default
|
||||
* Corrections to various MIME types so that files open in sensible default applications
|
||||
* Set default timezone to 'Europe/London'
|
||||
* Linux kernel 4.14.79
|
||||
* Raspberry Pi firmware 12e0bf86e08d6067372bc0a45d7e8a10d3113210
|
||||
2018-10-09:
|
||||
* Raspberry Pi 3A+ support
|
||||
* In startup wizard, assign keyboard to country as per Debian installer recommendations
|
||||
* In startup wizard, add option to use US keyboard in preference to country-specific option
|
||||
* In startup wizard, show IP address on first page
|
||||
* In startup wizard, check for existing wifi network connection and show it if there is one
|
||||
* In startup wizard, install language support packages for LibreOffice and other applications
|
||||
* In startup wizard, improve operation with keyboard only and no mouse
|
||||
* Password change in Raspberry Pi Configuration and startup wizard now works properly if passwords contain shell characters
|
||||
* Battery indicator plugin modified to cope with Pi-top hardware monitor crashing
|
||||
* Networking plugin hides wifi password characters by default
|
||||
* In Scratch 2 GPIO plugin, set pin from dropdown list rather than free text
|
||||
* In Scratch 2 SenseHAT plugin, swap x and y axis values for LED array
|
||||
* Include latest Adobe Flash player (31.0.0.108)
|
||||
* Include latest RealVNC Server (6.3.1)
|
||||
* Include libav-tools
|
||||
* Include ssh-import-id
|
||||
* Removed Mathematica
|
||||
* Merge in latest third-party code for Bluetooth ALSA interface
|
||||
* Add ability to prevent software update changing configuration files, by creating ~/.config/.lock file
|
||||
* Various other small bug fixes, tweaks and changes to text
|
||||
* Make dhcpcd work with 3G devices
|
||||
* Add hw acceleration to ffmpeg
|
||||
* Improved WiFi-BT coexistence parameters
|
||||
* Run fake-hwclock before systemd-fsck-root
|
||||
* Raspberry Pi PoE HAT support
|
||||
* Linux kernel 4.14.71
|
||||
* Raspberry Pi firmware 5b49caa17e91d0e64024380119ad739bb201c674
|
||||
2018-06-27:
|
||||
* New first-boot configuration wizard added
|
||||
* Recommended Software installer added
|
||||
* Bluej, Greenfoot, NodeRED, Claws Mail, VNC Viewer removed from image - can now be installed from Recommended Applications
|
||||
* Qpdfview PDF viewer installed instead of Xpdf
|
||||
* Version 65.0 of Chromium browser included, with latest Flash player
|
||||
* Volume up / down keys now change by 5% increments and affect currently-selected output device rather than internal device only
|
||||
* Network plugin now remembers previously-entered WiFi network passwords when prompting for reconnection
|
||||
* Serial port and serial console can now be switched separately in Raspberry Pi Configuration
|
||||
* Lxkeymap keyboard language setting application removed - replaced with dialog within Raspberry Pi Configuration
|
||||
* Wifi country and keyboard language setting dialogs in Raspberry Pi Configuration now callable from other applications
|
||||
* New version of Piboto font included to render with correct weight under some rogue applications
|
||||
* Reconnection to Bluetooth audio devices on reboot improved
|
||||
* Disable click-to-rename behaviour in file manager if single-click selection enabled
|
||||
* Appearance Settings dialog makes config changes to some Qt files to match selected theme
|
||||
* MIME file type associations improved
|
||||
* Multiple desktop management options removed from mouse middle-click menu
|
||||
* Menu shortcuts to Raspberry Pi website amended
|
||||
* Python 2 IDLE menu link removed
|
||||
* Sample Magpi PDF installed in /home/pi/MagPi
|
||||
* Various minor tweaks, bug fixes and appearance changes
|
||||
* Bluetooth updates
|
||||
- Firmware with Bluetooth 4.2 features
|
||||
- SCO profile suppot added via bthelper.service
|
||||
* Linux kernel 4.14.50+
|
||||
* Raspberry Pi firmware 748fb17992426bb29d99224b93cb962fefbdc833
|
||||
2018-04-18:
|
||||
* Fixed race between wifi-country.service and raspberrypi-net-mods.service
|
||||
* Linux kernel 4.14.34+
|
||||
* Raspberry Pi firmware 5db8e4e1c63178e200d6fbea23ed4a9bf4656658
|
||||
2018-03-13:
|
||||
* Raspberry Pi 3 B+ support
|
||||
* WiFi is disabled until wireless regulatory domain is set (Pi 3 B+ only)
|
||||
- The domain can be done through 'Raspberry Pi Configuration' (rc_gui),
|
||||
'raspi-config' or by setting 'country=' to an appropriate ISO 3166
|
||||
alpha2 country code in /etc/wpa_supplicant/wpa_supplicant.conf.
|
||||
* Default wireless regulatory domain is now unset
|
||||
* Added support to desktop for different screen sizes and resolutions,
|
||||
including multiple preset options in Appearance Settings and pixel doubling
|
||||
option in Raspberry Pi Configuration
|
||||
* Version 2.1.16 of Thonny included
|
||||
* Version 29.0.0.113 of Adobe PepperFlash player included
|
||||
* Version 1.2.post1 of Pygame Zero included
|
||||
* Bluetooth plugin now supports connection to Bluetooth LE HID devices
|
||||
* Network plugin now indicates 5G-compatible APs
|
||||
* Latest changes to Bluez ALSA service merged
|
||||
- service now started on CLI boot as well as GUI boot
|
||||
* Latest changes to dhcpcd networking plugin merged
|
||||
* Improved support for running on pi-top devices
|
||||
* Small design changes to PiX theme and icons
|
||||
* Bug fix - hide spurious window resize handles
|
||||
* Bug fix - Scratch 2 remote GPIO state block now works correctly
|
||||
* Updated WiFi Firmware
|
||||
- brcmfmac43455-sdio 7.45.154
|
||||
- brcmfmac43430-sdio 7.45.98.38
|
||||
* New packages:
|
||||
- policykit-1
|
||||
- obconf
|
||||
- python-buttonshim python3-buttonshim
|
||||
- python-unicornhathd python3-unicornhathd
|
||||
- python-pantilthat python3-pantilthat
|
||||
* Linux kernel 4.9.80+
|
||||
* Raspberry Pi firmware 3347884c7df574bbabeff6dca63caf686e629699
|
||||
2017-11-29:
|
||||
* Added battery monitor plugin for taskbar - works on x86 images or first-generation Pi-Top
|
||||
* Added cutdown mode to PCManFM file manager to reduce complexity
|
||||
* Added ability to rename files in PCManFM by clicking name when selected
|
||||
* Bug fix in Bluetooth ALSA module to reduce truncation of audio at end of playback
|
||||
* Various small tweaks, bug fixes and theme modifications
|
||||
* New kernel and firmware
|
||||
2017-09-07:
|
||||
* Disable predictable network interface names for Ethernet devices
|
||||
* Bug fix for keyboard settings dialog in Raspberry Pi Configuration
|
||||
* Bug fix for crash on some videos and animations in Chromium
|
||||
* Bug fix for taskbar crash when running RealVNC server
|
||||
* Bug fix for reloading projects with extensions in Scratch 2
|
||||
* Bug fix for MAC address problem in Bluetooth
|
||||
* Simple mode and new icons in Thonny
|
||||
* New Japanese translations in Raspberry Pi Configuration
|
||||
* Install fonts-droid-fallback for international fonts
|
||||
2017-08-16:
|
||||
* Based on Raspbian Stretch (Debian version 9)
|
||||
* Version 60 of Chromium browser included
|
||||
* Version 3.0.1 of Sonic Pi included
|
||||
* Version 6.1.1 of RealVNC included
|
||||
* Version 0.17.4 of NodeRED included
|
||||
* Bluetooth audio routed via ALSA rather than Pulseaudio
|
||||
* SenseHAT extension added to Scratch 2
|
||||
* Various desktop applications modified to prompt for sudo password if needed
|
||||
* lxinput control options for mouse speed simplified
|
||||
* lxpanel plugins moved into separate packages
|
||||
* Wireless firmware for Pi 3 and Pi 0W modified to address Broadpwn exploit
|
||||
* Latest kernel and firmware
|
||||
* Various small tweaks, bug fixes and theme modifications
|
||||
2017-07-05:
|
||||
* New kernel and firmware
|
||||
* Filesystem created without the metadata_csum feature
|
||||
2017-06-21:
|
||||
* Scratch 2 application included
|
||||
* Thonny Python IDE included
|
||||
* New icons with thinner outlines
|
||||
* Volume control more linear in behaviour
|
||||
* Updated Flash player
|
||||
* Updated RealVNC server and viewer
|
||||
* Various tweaks and bugfixes
|
||||
* New kernel and firmware
|
||||
2017-04-10:
|
||||
* Wolfram Mathematica updated to version 11.0.1
|
||||
* Adobe Flash Player updated to version 25.0.0.127
|
||||
* Use PARTUUID to support USB boot
|
||||
2017-03-02:
|
||||
* Updated kernel and firmware (final Pi Zero W support)
|
||||
* Wolfram Mathematica updated to version 11
|
||||
* NOOBS installs now checks for presence of 'ssh' file on the NOOBS partition.
|
||||
2017-02-16:
|
||||
* Chromium browser updated to version 56
|
||||
* Adobe Flash Player updated to version 24.0.0.221
|
||||
* RealVNC Server and Viewer updated to version 6.0.2 (RealVNC Connect)
|
||||
* Sonic Pi updated to version 2.11
|
||||
* Node-RED updated to version 0.15.3
|
||||
* Scratch updated to version 120117
|
||||
* Detection of SSH enabled with default password moved into PAM
|
||||
* Updated desktop GL driver to support use of fake KMS option
|
||||
* Raspberry Pi Configuration and raspi-config allow setting of fixed HDMI resolution
|
||||
* raspi-config allows enabling of serial hardware independent of serial terminal
|
||||
* Updates to kernel and firmware
|
||||
* Various minor bug fixes and usability and appearance tweaks
|
||||
2017-01-11:
|
||||
* Re-release of the 2016-11-25 image with a FAT32-formatted boot partition
|
||||
2016-11-25:
|
||||
* SSH disabled by default; can be enabled by creating a file with name "ssh" in boot partition
|
||||
* Prompt for password change at boot when SSH enabled with default password unchanged
|
||||
* Adobe Flash Player included
|
||||
* Updates to hardware video acceleration in Chromium browser
|
||||
* Greeter now uses background image from last set in Appearance Settings rather than pi user
|
||||
* Updated version of Scratch
|
||||
* Rastrack option removed from raspi-config and Raspberry Pi Configuration
|
||||
* Ability to disable graphical boot splash screen added to raspi-config and Raspberry Pi Configuration
|
||||
* Appearance Settings dialog made tabbed to work better on small screens
|
||||
* Raspberry Pi Configuration now requires current password to change password
|
||||
* Various small bug fixes
|
||||
* Updated firmware and kernel
|
||||
2016-09-23:
|
||||
* New PIXEL desktop environment - new icon set, window design, desktop images, splash screen and greeter
|
||||
* Chromium web browser included
|
||||
* Infinality font rendering patches included
|
||||
* RealVNC server and viewer included
|
||||
* SenseHAT emulator included
|
||||
* Rfkill entries added to Wifi and Bluetooth panel plugins
|
||||
* Updates to various standard applications, including Scratch and NodeRED
|
||||
* Various bug fixes, tweaks and translation updates
|
||||
* Updated firmware and kernel (https://github.com/raspberrypi/firmware/commit/ad8608c08b122b2c228dba0ff5070d6e9519faf5)
|
||||
2016-05-27:
|
||||
* Fixed crash of lxpanel when D-bus not accessible
|
||||
* Fixed permissions for D-bus Bluetooth access
|
||||
* Removed sudo from shutdown options
|
||||
* Appearance of tooltips updated in theme
|
||||
* Fixed ejecter plugin grabbing focus
|
||||
* raspi-config command line and GUI apps tidied; unnecessary reboots removed
|
||||
* More error detection in piclone; copying of volume names and IDs added
|
||||
* Updated translation files
|
||||
2016-05-10:
|
||||
* New version of Scratch, which no longer requires sudo
|
||||
* New version of BlueJ
|
||||
* New version of NodeRED
|
||||
* New version of pypy
|
||||
* pigpio included
|
||||
* geany editor included
|
||||
* SD Card Copier added (can be used to duplicate or back up the Pi)
|
||||
* Bluetooth plugin added to taskbar
|
||||
* Volume control on taskbar now compatible with Bluetooth devices
|
||||
* New shutdown helper application
|
||||
* Mouse double-click speed setting added to mouse and keyboard preference application
|
||||
* Option to enable / disable 1-wire interface and remote access to pigpio added to Raspberry Pi config application
|
||||
* File system automatically expanded on first boot
|
||||
* Empty Wastebasket option added to right-click menu
|
||||
* Ctrl-Alt-T can be used to open a terminal window
|
||||
* Various small bug fixes and appearance tweaks
|
||||
* Updated firmware and kernel (https://github.com/raspberrypi/firmware/commit/cc6d7bf8b4c03a2a660ff9fdf4083fc165620866)
|
||||
2016-03-18:
|
||||
* updated firmware and kernel (https://github.com/raspberrypi/firmware/commit/951799bbcd795ddf27769d14acf4813fdcbe53dc)
|
||||
* use serial0 in cmdline.txt
|
||||
* wpa_supplicant.conf country default to GB (allows use of channels 12 and 13)
|
||||
2016-02-26:
|
||||
* Support added for Pi 3, including Wifi and Bluetooth
|
||||
* Option to set wifi country code added to raspi-config
|
||||
2016-02-09:
|
||||
* dtb that uses mmc sdcard driver (fixes problems experienced with certain SD cards)
|
||||
2016-02-03:
|
||||
* new version of Sonic Pi (2.9)
|
||||
* new version of Scratch (15/1/16)
|
||||
* new version of Node-Red (2.5)
|
||||
* new version of Wolfram (10.3)
|
||||
* optional experimental GL desktop driver (can be enabled using advanced options in command-line raspi-config)
|
||||
* new version of Java (1.8.0_65)
|
||||
* new version of WiringPi
|
||||
* raspi-gpio included
|
||||
* ping no longer requires sudo (except NOOBS installs)
|
||||
* support for more USB audio devices in lxpanel
|
||||
* bug fix for creation of new menus in Alacarte
|
||||
* various changes to raspi-config and GUI to tidy up board support and fix bugs, and updated translations
|
||||
* small tweaks to theme to support GL driver
|
||||
2015-11-21:
|
||||
* Included IBM Node-RED IoT application
|
||||
* Included graphical package manager
|
||||
* Included accelerated pixman library
|
||||
* Updated Epiphany browser to improve video compatibility
|
||||
* Updated Scratch with performance improvements and bug fixes
|
||||
* Updated Raspberry Pi configuration to allow boot to pause while
|
||||
network is established
|
||||
* Various minor bug fixes
|
||||
2015-09-25:
|
||||
* Based on Debian Jessie
|
||||
* Upgraded applications - Epiphany browser, Scratch and Sonic Pi
|
||||
* Included applications - LibreOffice, Claws Mail, Greenfoot, BlueJ
|
||||
* Included utilities - Alacarte menu editor, Lxkeymap, scrot, tree, pip
|
||||
* New GUI-based Raspberry Pi Configuration application
|
||||
* GPIO control now possible without need for sudo
|
||||
* Web link to Magpi magazine included
|
||||
* New taskbar plugin to eject mounted USB drives
|
||||
* Default boot is now to GUI not desktop
|
||||
* Look and feel now based on GTK+3 default theme
|
||||
* Print screen key launches scrot to produce screenshot
|
||||
* Common keyboards autodetected by GUI and drivers loaded accordingly
|
||||
* Numerous small tweaks and bugfixes
|
||||
2015-05-05:
|
||||
* Updated UI changes
|
||||
* Updated firmware
|
||||
* Install raspberrypi-net-mods
|
||||
* Install avahi-daemon
|
||||
* Add user pi to new i2c and spi groups
|
||||
* Modified udev rules for i2c and spi devices
|
||||
2015-02-16:
|
||||
* Newer firmware with various fixes
|
||||
* New Sonic Pi release
|
||||
* Pi2 compatible RPi.GPIO
|
||||
* Updated Wolfram Mathematica
|
||||
2015-01-31:
|
||||
* Support for Pi2
|
||||
* Newer firmware
|
||||
* New Sonic Pi release
|
||||
* Updated Scratch
|
||||
* New Wolfram Mathematica release
|
||||
* Updated Epiphany
|
||||
2014-12-24:
|
||||
* Fix regression with omission of python-pygame
|
||||
2014-12-22:
|
||||
* New firmware with variosu fixes and improvements
|
||||
* New UI configuration for lxde
|
||||
* Various package updates
|
||||
* python3-pygame preinstalled
|
||||
* 'nuscratch', scratch running on the Cog StackVM
|
||||
* Misc other changes
|
||||
2014-09-09:
|
||||
* New firmware with various fixes and improvements
|
||||
* Minecraft Pi pre-installed
|
||||
* Sonic Pi upgraded to 2.0
|
||||
* Include Epiphany browser work from Collabora
|
||||
* Switch to Java 8 from Java 7
|
||||
* Updated Mathematica
|
||||
* Misc minor configuration changes
|
||||
2014-06-20:
|
||||
* New firmware with various fixes, and kernel bugfix
|
||||
2014-06-02:
|
||||
* Many, many firmware updates with major USB improvements
|
||||
* pyserial installed by default
|
||||
* picamera installed by default
|
||||
2014-01-07:
|
||||
* Firmware updated
|
||||
* Some space saved on the root filesystem
|
||||
2013-12-20:
|
||||
* Firmware updated, includes V4L2 fixes
|
||||
* Update omxplayer
|
||||
2013-12-18:
|
||||
* Firmware updated and now using kernel 3.10. Many, many improvements
|
||||
* fbturbo XOrg driver is now included and enabled by default. Thanks to
|
||||
ssvb https://github.com/ssvb/xf86-video-fbturbo
|
||||
* Update Scratch image with further bug fixes
|
||||
* Include Wolfram Mathematica
|
||||
* Update to PyPy 2.2
|
||||
* Update omxplayer
|
||||
* Include v4l-utils for use with experimental V4L2 Raspberry Pi camera driver
|
||||
* Update squeak-vm to fix issues with loading JPEGs
|
||||
2013-09-25:
|
||||
* Update Scratch image for further performance improvements
|
||||
* Include Oracle JDK
|
||||
* At least a 4GiB SD card is now required (see above)
|
||||
* Include PyPy 2.1
|
||||
* Include base piface packages
|
||||
* Update raspi-config to include bugfix for inheriting language settings
|
||||
from NOOBS
|
||||
2013-09-10:
|
||||
* Updated to current top of tree firmware
|
||||
* Update squeak-vm, including fastblit optimised for the Raspbery Pi
|
||||
* Include Sonic Pi and a fixed jackd2 package
|
||||
* Support boot to Scratch
|
||||
* Inherit keyboard and language settings from NOOBS
|
28
pyf.py
28
pyf.py
@ -1,15 +1,8 @@
|
||||
''' pyf - a simple python framework '''
|
||||
|
||||
import os
|
||||
WORKDIR = os.getcwd()
|
||||
|
||||
|
||||
|
||||
TMP = '/tmp/quickos.log'
|
||||
def log(message):
|
||||
''' write to logfile TMP
|
||||
@param message: the message which shall be written to the log file
|
||||
'''
|
||||
def log(message, log_file):
|
||||
''' write @message to @log_file '''
|
||||
with open(TMP, 'a') as f:
|
||||
f.write('{} {}\n'.format(time.ctime(), message))
|
||||
|
||||
@ -21,9 +14,7 @@ def prt(message):
|
||||
|
||||
|
||||
def download(url, file_name, progress=True):
|
||||
''' download a given url to a file
|
||||
@return the absolute filename
|
||||
'''
|
||||
''' download @url to @file_name '''
|
||||
from urllib.request import urlretrieve
|
||||
if progress:
|
||||
from tqdm import tqdm
|
||||
@ -38,3 +29,16 @@ def download(url, file_name, progress=True):
|
||||
urlretrieve(url, filename=file_name, reporthook=t.update_to)
|
||||
else:
|
||||
urlretrieve(url, filename=file_name)
|
||||
|
||||
|
||||
def sha256(file_name):
|
||||
''' return @string sha256sum of @file_name '''
|
||||
import hashlib
|
||||
block = 65536
|
||||
hasher = hashlib.sha256()
|
||||
with open(file_name, 'rb') as f:
|
||||
buf = f.read(block)
|
||||
while len(buf) > 0:
|
||||
hasher.update(buf)
|
||||
buf = f.read(block)
|
||||
return hasher.hexdigest()
|
||||
|
67
quickos.py
67
quickos.py
@ -7,7 +7,7 @@ import time
|
||||
import argparse
|
||||
import os
|
||||
import json
|
||||
from pyf import download, prt
|
||||
from pyf import download, prt, sha256
|
||||
|
||||
|
||||
WORKDIR = os.getcwd()
|
||||
@ -28,15 +28,6 @@ def init_parser():
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
# algo check if new version should be downloaded
|
||||
# a: is image file there?
|
||||
# -> no: download image file
|
||||
# -> yes: goto b
|
||||
#
|
||||
# b: is the age of the file older than *today* - *interval*
|
||||
# -> no: break
|
||||
# -> yes: goto c
|
||||
#
|
||||
# c: is there a *testfile_sha256* sum?
|
||||
# -> no: download image file
|
||||
# -> yes: goto d
|
||||
@ -49,10 +40,18 @@ def check_update(database):
|
||||
''' check if update is necessary '''
|
||||
from urllib.parse import urlparse
|
||||
from os import path
|
||||
from datetime import datetime
|
||||
for name, dist in database.items():
|
||||
prt('checking operating system {} ...'.format(name))
|
||||
|
||||
if dist['file_url'] == '':
|
||||
prt('database.txt: `file_url` not specified, skipping ...')
|
||||
continue
|
||||
|
||||
#TODO check if donwload was successful, if not do stuff
|
||||
if dist['file_name'] == '':
|
||||
prt('database.txt: `file_name` not specified')
|
||||
#TODO get real file_name and save it to database.txt
|
||||
file_name = urlparse(dist['file_url'])
|
||||
file_name = file_name.path
|
||||
file_name = '{}/dist/{}'.format(WORKDIR, path.basename(file_name))
|
||||
@ -61,9 +60,55 @@ def check_update(database):
|
||||
|
||||
file_name = '{}/dist/{}'.format(WORKDIR, dist['file_name'])
|
||||
if not path.isfile(file_name):
|
||||
prt('database.txt: `file_name` {} does not exist on your filesystem'.format(file_name))
|
||||
download(dist['file_url'], file_name)
|
||||
continue
|
||||
|
||||
if dist['interval'] == '':
|
||||
prt('database.txt: `interval` not specified')
|
||||
download(dist['file_url'], file_name)
|
||||
continue
|
||||
|
||||
file_mod = datetime.fromtimestamp(path.getmtime(file_name))
|
||||
file_age = (datetime.now() - file_mod).days
|
||||
if file_age < int(dist['interval']):
|
||||
prt('{} is younger than {} days, skipping ...'.format(
|
||||
name, dist['interval']))
|
||||
continue
|
||||
else:
|
||||
prt('{} is older than {} days'.format(name, file_age))
|
||||
|
||||
if dist['test_url'] == '':
|
||||
prt('database.txt: `test_url` not specified')
|
||||
download(dist['file_url'], file_name)
|
||||
continue
|
||||
|
||||
if dist['test_name'] == '':
|
||||
prt('database.txt: `test_name` not specified')
|
||||
#TODO write test_name to database.txt
|
||||
test_name = urlparse(dist['test_url'])
|
||||
test_name = test_name.path
|
||||
test_name = '{}/dist/{}'.format(WORKDIR, path.basename(test_name))
|
||||
else:
|
||||
test_name = '{}/dist/{}'.format(WORKDIR, dist['test_name'])
|
||||
|
||||
if not path.isfile(test_name):
|
||||
prt('database.txt: `test_name` {} does not exist on your filesystem'.format(test_name))
|
||||
download(dist['test_url'], test_name)
|
||||
download(dist['file_url'], file_name)
|
||||
continue
|
||||
|
||||
prt(test_name)
|
||||
test_sha256_old = sha256(test_name)
|
||||
download(dist['test_url'], test_name)
|
||||
test_sha256_new = sha256(test_name)
|
||||
|
||||
if not test_sha256_old == test_sha256_new:
|
||||
prt('`test_file` {} has changed'.format(test_name))
|
||||
download(dist['file_url'], file_name)
|
||||
continue
|
||||
|
||||
prt('{} is still up to date, skipping ...'.format(name))
|
||||
|
||||
|
||||
def read_os_database():
|
||||
@ -74,7 +119,6 @@ def read_os_database():
|
||||
return json.load(f)
|
||||
|
||||
|
||||
|
||||
# https://stackoverflow.com/questions/4637420/efficient-python-daemon#8375012
|
||||
def run_daemon():
|
||||
''' run the daemon '''
|
||||
@ -82,7 +126,6 @@ def run_daemon():
|
||||
check_update()
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
args = init_parser()
|
||||
database = read_os_database()
|
||||
|
Loading…
x
Reference in New Issue
Block a user