From 9fcd703e60d52eb21eb4a5693dcfadcdfc07a0bd Mon Sep 17 00:00:00 2001 From: Doug Torrance Date: Tue, 12 Aug 2014 23:18:36 -0500 Subject: [PATCH] Add script to generate dockapps website database. This script is run in the root directory of the dockapps repo to generate the file used by the Window Maker website to store all of the information in the dockapps section. Note that this file will then be submitted to the whome repo. --- dockapps.db.in | 364 +++++++++++++++++++++++++++++++++++++++++++++++++++++ update-dockapps.pl | 112 +++++++++++++++++ 2 files changed, 476 insertions(+) create mode 100644 dockapps.db.in create mode 100755 update-dockapps.pl diff --git a/dockapps.db.in b/dockapps.db.in new file mode 100644 index 0000000..84ba1f6 --- /dev/null +++ b/dockapps.db.in @@ -0,0 +1,364 @@ +[AlsaMixer.app] +image = AlsaMixer.app.png +description = "AlsaMixer.app is simple mixer application for Linux with ALSA drivers (>= 0.9.x)." +url = +dockapps = 253 +category = Audio + +[Temperature.app] +image = "Temp-app.png,Temperature.gif" +description = "Temperature.app is a Window Maker applet which fetches local temperature information every 15 minutes from http://weather.noaa.gov and displays it (in Celsius or Fahrenheit)." +url = "https://web.archive.org/web/20071020004554/http://www.fukt.hk-r.se/~per/temperature/" +dockapps = 86 +category = General/Others + +[wmMatrix] +image = wmMatrix.gif +description = "A DockApp thats runs a slightly modified version of Jamie Zawinski's xmatrix screenhack." +url = "https://web.archive.org/web/20040722180350/http://nis-www.lanl.gov/~mgh/WindowMaker/DockApps.shtml" +dockapps = 10 +category = Date/Time + +[wmSMPmon] +image = wmSMPmon-SMP_style1.jpg +description = "* Current CPU utilization of up to two CPUs +* On dual CPU systems, three different styles for the utilization graph are available. +* Up to two minutes history of CPU utilization +* Current memory usage +* Current swap usage +* Currently supports Linux kernel 2.2, 2.4 and 2.6" +url = "http://lancre.ribbrock.org/en/binabit_en/wmsmpmon_en.html" +dockapps = 299 +category = System Monitoring + +[wmacpi] +image = wmacpi.gif +description = "This is port of WMApm 1.1 (see below) with ACPI support. Check README, and please report success/failure issues to me. Since I can't determine "time remaining" from the information provided, its value has been replaced with "system power load", which is roughly how much power is being used while on-battery. Note, this (for now) only supports laptops with one system battery. I am working with kernel acpi people to standartize power reporting interface, and when it's usable, WMApm will be updated to support any number of batteries, and provide full information about ACPI power sources. Right now, all I can say is that it works on my laptop :)" +url = "http://www.ne.jp/asahi/linux/timecop/" +dockapps = 32 +category = System Monitoring + +[wmacpiload] +image = wmacpiload1.png +description = "An app for monitoring CPU temp and battery time from ACPI. In the style of wmcpuload and wmapmload" +url = +dockapps = 168 +category = System Monitoring + +[wmauda] +image = x1.miff.png +description = "This is a port of wmxmms to GTK 2.x and Audacious." +url = +dockapps = 330 +category = Audio + +[wmbatteries] +image = wmbatteries.gif +description = "wmbatteries - a dockapp based on wmacpiload. +monitors up to 2 battery capacities, remaining time, current power consumption and cpu temperature. +requires recent acpi kernel" +url = +dockapps = 216 +category = System Monitoring + +[wmbiff] +image = wmbiff.jpg +description = "WMBiff is an WindowMaker docking utility, that displays the number of read +and unread messages in up to five mailboxes. +You can also define actions to execute on new mail arrival (for example, +play a sound file), [auto]fetchmail from a remote server or to execute your +mail reader with a mouse click. WMBiff also supports notification of +incoming Licq messages, so you can put Licq in the background. +. +At this moment, wmbiff supports unix-style, maildir, pop3, APOP, IMAP +and IMAPS mailboxes, as well as Licq and GnomeICU history files." +url = "http://wmbiff.sourceforge.net/" +dockapps = 97 +category = E-mail + +[wmbutton] +image = wmbutton5.jpg +description = "Wmbuttons is simple little application that I wrote (and am in the process of updating). It is specifically designed to be docked in Windowmaker, or 'Swallowed' by wharf in Afterstep. If you're not familiar with these windowmanagers, check them out in the links section. Of course, it should work in just about any window manager. + + +Wmbutton is a 64x64 pixel application that displays nine buttons. Each of these buttons can be configured via a configuration file to run just about any application you'd like to. Basically, if you can type it in a shell command, wmbutton can run it. The graphics of in each button may, of course, be changed as well. " +url = "https://web.archive.org/web/20040417092638/http://members.cox.net/ehf_dockapps/" +dockapps = 241 +category = General/Others + +[wmCalClock] +image = wmCalClock4.gif +description = "A Calendar clock with antialiased text." +url = "https://web.archive.org/web/20040722180350/http://nis-www.lanl.gov/~mgh/WindowMaker/DockApps.shtml" +dockapps = 9 +category = Date/Time + +[wmcalendar] +image = wmcalendar.png +description = "A dockapp calendar with monthly view and interface to iCalendar based calendars like Ximian Evolution or Mozilla calendar." +url = "http://wmcalendar.sourceforge.net/" +dockapps = 171 +category = Date/Time + +[wmckgmail] +image = "wmckgmail-screenshot.jpg,wmckgmail-screenshot2.jpg" +description = "wmckgmail is a very simple program used to monitor the number of unread mails in a gmail inbox. It uses the wget command to get the gmail atom feed and reads the number of new mails from this feed. + +This app is based on the wmgeneral code." +url = +dockapps = 316 +category = E-mail + +[wmcpuload] +image = "wmcpuload2.png,wmcpuload3.png" +description = "A simple program to monitor CPU usage." +url = https://web.archive.org/web/20080505022830/http://seiichisato.jp/dockapps/ +dockapps = 36 +category = System Monitoring + + +[wmfemon] +image = wmfemon.png +description = "WindowMaker DVB frontend monitor dock applet. +Tested with skystar2. " +url = +dockapps = 338 +category = System Monitoring + +[wmfu] +image = wmfu-1.0.png +description = "wmfu displays all sorts of information about your Linux (laptop) system. It is designed for WindowMaker, but can also be run in other window managers. It does not need external custom libraries, but does need a recent kernel, since it uses ACPI and proc/sys pseudo-filesystems to read system data." +url = +dockapps = 329 +category = System Monitoring + +[wmifinfo] +image = led.gif +description = "wmifinfo is a simple applet showing basic network info for all available interfaces. It shows IP address, netmask, gateway and MAC address. A bit like ifconfig." +url = http://zevv.nl/play/code/wmifinfo/ +dockapps = 72 +category = Network + +[wmitime] +image = wmitime1.jpg +description = "WMitime is yet another clock dock app (and quite overglorified at that! :) +it shows standard time, date, as well as the new internet time (see www.swatch.com)" +url = https://web.archive.org/web/20040204094101/http://www.neotokyo.org/illusion/dock_apps.html +dockapps = 22 +category = Date/Time + +[wmix] +image = "wmix.gif,wmix-3.2.jpg" +description = "Dockapp mixer for OSS or ALSA. Allows toggling record source, muting individual channels, adjusting volume and balance, all in a compact dockapp size, with TV-like on-screen-display for volume levels. Supports mousewheel to adjust current channel volume, and can be controlled remotely with SIGUSR1 / SIGUSR2 to adjust the volume, too. Can use a configuration file to control some of the features." +url = http://www.ne.jp/asahi/linux/timecop/ +dockapps = 58 +category = Audio + +[wmkeys] +image = wmkeys.png +description = "wmkeys is a Window Maker and AfterStep dock app which allows you to quickly switch between different X keymaps, for example QWERTY and Dvorak. The source includes QWERTY and Dvorak keymappings. Other keymappings can be made with JWZ's xkeycaps." +url = http://www.goesgens.de/wmkeys.html +dockapps = 215 +category = General/Others + +[wmmixer] +image = wmmixer.gif +description = "Mixer application designed for WindowMaker. +wmmixer displays the mixer status of your computer in a small icon. +Most common channels are identified with an appropriate icon. Control +include a stereo (mono where appropriate) volume control and a recording +source toggle button. + +It is possible to change between the different channels using two small +buttons (previous channel, next channel) and to change the volume of the +channel. + +There's nothing in the program that makes it require WindowMaker, except maybe +the NeXTStep look and the fact that it properly docks. It can be used with +other window managers without problems." +url = +dockapps = 101 +category = Audio + +[wmmixer-alsa] +image = wmmixer-alsa.gif +description = "A hack of WMMixer to use the ALSA sound drivers." +url = "https://web.archive.org/web/20050311202958/http://bohemians.org/~iznogood/wmmixer-alsa/" +dockapps = 63 +category = Audio + +[wmmon] +image = wmmon.gif +description = "Window Maker dockapp for monitoring system information WMMon monitors the realtime CPU load as well as the average system load, and gives you some nice additional features too. It is intended for docking in Window Maker. + + It currently provides: + + * a realtime CPU stress meter; + * an auto-scaled average system load meter, like xload and wmavgload; + * a realtime disk I/O stress meter; + * auto-scaled disk I/O load meter; + * realtime memory and swap usage meters; + * a display for system uptime; + * three user-defined commands to launch." +url = +dockapps = +category = System Monitoring + +[wmmoonclock] +image = wmMoonClock5.png +description = "Shows lunar ephemeris to fairly high accuracy." +url = "https://web.archive.org/web/20040722180350/http://nis-www.lanl.gov/~mgh/WindowMaker/DockApps.shtml" +dockapps = 14 +category = General/Others + +[wmnet] +image = wmnet.gif +description = "WMnet is a little X dock.app network monitor I wrote for Linux. It was originally inspired by that funky program 'tleds' that blinks your keyboard LED's in response to net traffic, but its a lot more entertaining than that nowadays. I wrote this thing with low cpusage, low memory, and efficient use of screen real-estate in mind." +url = https://web.archive.org/web/20050403180151/http://www.digitalkaos.net/linux/wmnet/ +dockapps = 77 +category = Network + +[wmnotify] +image = mailbox2.png +description = "Wmnotify is an E-mail checker for a single POP3 or IMAP4 mailbox, with optional SSL encryption. Notification of new messages is done with a simple graphics animation and/or by playing a sound (WAV or AIFF format)." +url = "http://www.hugovil.com/projet.php?proj=wmnotify&lang=en_US" +dockapps = 163 +category = E-mail + +[wmpager] +image = wmpager.png +description = "wmpager is a simple pager docklet for the Window Maker. + +wmpager offers the following features: + +* convenient workspace switching using the mouse for up to nine workspaces +* automatic configuration according to the number of workspaces (you may however if you like also specify the number of workspaces and the layour of wmpager yourself) +* automagic adjustment to the currently active workspace (if you happen to switch workspaces using the keyboard or some other Window Maker means) +* configurable look and feel to match your Window Maker theme +* tooltips for the workspace names (if you happen to have to many workspaces and can't remember which is which ;-))" +url = http://wmpager.sourceforge.net/ +dockapps = 109 +category = General/Others + +[wmpower] +image = wmpower.gif +description = "wmpower is a Window Maker dock application for linux allowing the user to graphically see (and set) the power management status of his laptop. It supports both APM and ACPI kernels, plus it interfaces directly to toshiba hardware (but should work with every laptop)." +url = http://wmpower.sourceforge.net/ +dockapps = 164 +category = System Monitoring + +[wmppp.app] +image = wmppp.jpg +description = "PPP dial control and network load monitor with NeXTStep look +wmppp.app provides a PPP activator and network load monitor on a 64x64 mini window. With wmppp you can monitor the total traffic as well as the outbound and inbound traffic. It is designed to work with the WindowMaker dock, but will work great with other window managers as well." +url = +dockapps = 99 +category = Network + +[wmsm.app] +image = wmsm1.png +description = "WindowMaker System Monitor" +url = +dockapps = 208 +category = System Monitoring + +[wmsmixer] +image = ss-wmsmixer2.png +description = "This is a hack to wmmixer which makes some changes to the display and adds a few new features, most notably scrollwheel support." +url = https://web.archive.org/web/20050404084709/http://www.hibernaculum.net/wmsmixer.html +dockapps = 63 +category = Audio + +[wmstickynotes] +image = +description = "This program is a Window Maker style dockapp which allows you to create note windows. By default, the notes, along with their position, size, and color, are stored in files and will be restored when wmstickynotes is run again." +url = https://sourceforge.net/projects/wmstickynotes/ +dockapps = +category = General/Others + +[wmsupermon] +image = "wmsupermon1.png,wms122.gif,wmsupermon122.gif" +description = "Universal Monitoring Dockapp. +Can be used to monitor +1. CPU usage +2. disk i/o +3. memory +4. swap +5. filesystems - space utilization +6. network traffic +7. wireless link quality +8. cpu frequency +9. CPU temperature, fan speed, voltages (no lm_sensors required!) +10. battery status (with actual - not guessed - discharge rate!) +11. traffic from yuor router +12. anything else :) " +url = +dockapps = 320 +category = System Monitoring + +[wmtime] +image = wmtime.png +description = "WMTime displays the time and date and gives you some nice additional features too. It is intended for docking in Window Maker. + +It currently provides: + +* the time and date; + +* a realtime morphing interface (analog <> digital mode); + +* auto-scaled and anti-aliased hands; + +* localization, displaying the day and date in various languages; + +* three user-defined commands to launch." +url = https://web.archive.org/web/19991104043355/http://windowmaker.mezaway.org/dockapps/wmtime.html +dockapps = 324 +category = Date/Time + +[wmtv] +image = wmtv.png +description = "Dockable video4linux TV player for WindowMaker" +url = "https://web.archive.org/web/20000831082905/http://www.student.uwa.edu.au/~wliang/" +dockapps = +category = General/Others + +[wmtz] +image = wmtz.jpg +description = "wmtz displays the time in different time zones as defined in it's configuration file. It can also display the current Julian Day Number, sidereal time and swatch beats." +url = https://web.archive.org/web/20091027110712/http://geocities.com/jl1n/wmtz/wmtz.html +dockapps = 24 +category = Date/Time + +[wmweather+] +image = "wmweather+.png,wmweather+2.png,wmweather+4.png" +description = "wmweather+ will download the National Weather Serivce METAR bulletins, ANV and MRF forecasts, and any weather map for display in a WindowMaker dockapp. Think wmweather with a smaller font, forecasts, a weather map, and a sky condition display. + +Please see the sourceforge page for the latest version." +url = https://sourceforge.net/projects/wmweatherplus/ +dockapps = 112 +category = General/Others + +[wmWeather] +image = wmWeather.gif +description = "Shows local weather conditions." +url = "https://web.archive.org/web/20040722180350/http://nis-www.lanl.gov/~mgh/WindowMaker/DockApps.shtml" +dockapps = 17 +category = General/Others + +[wmwifi] +image = wmwifi-screenshot-0.5.gif +description = "wmwifi is a wireless network interface monitor dockapp for the Window Maker desktop. It is designed to fit well with dockapps like wmcpuload and wmnetload. +wmwifi relys on the Wireless Exntension being enabled in the kernel." +url = "https://web.archive.org/web/20080723160021/http://wmwifi.digitalssg.net/" +dockapps = 222 +category = Network + +[wmwlmon] +image = wmwlmon.png +description = "wmwlmon is a wmdockapp which shows the state of a wireless network interface. In the title you see the network interface name and a led showing if the interface link is active. As next you see the signal strength from the conntected access point in dB (decibel). The bar shows the signal strength in percents. If the bar is full, it means that you have the full throughput of the bandwidth displayed in Mbps. As next you see the channel number. A red lock shines if WEP is enabled. The last line shows the network id." +url = http://www.nazgul.ch/dev_wmwlmon.html +dockapps = +category = Network + + + diff --git a/update-dockapps.pl b/update-dockapps.pl new file mode 100755 index 0000000..53dde71 --- /dev/null +++ b/update-dockapps.pl @@ -0,0 +1,112 @@ +#!/usr/bin/perl + +# Update http://windowmaker.org/dockapps from git +# +# Copyright 2014 Window Maker Developers Team +# +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# DESCRIPTION +# +# After every commit to the dockapps git repository, run this script to +# update dockapps/dockapps.db, the plain text config file that stores all +# of the information for the dockapps section of windowmaker.org. +# +# The script uses git to determine the version numbers and tarball download +# urls. Everything else is pulled in from dockapps.db.in, which is +# manually updated. +# +# The format of each dockapp entry in dockapps.db.in is: +# +# [dockapp name] +# image = (file name of image; in double quotes and comma-separated if more +# than one image) +# description = (description, possibly taken from archive.org copy of +# dockapps.windowmaker.org; in double quotes) +# url = (use archive.org copy if original homepage no longer exists) +# dockapps = (currently unused; id number from dockapps.windowmaker.org) +# category = (category from dockapps.windowmaker.org) +# +# After generating a new dockapps.db, submit a patch for the whome git repo +# to wmaker-dev@lists.windowmaker.org. + +use warnings; +use strict; +use Git::Repository; +use POSIX; + +open DB, "dockapps.db.in" or die $!; +my $db = do { local $/; }; +close DB; + +my $r = Git::Repository->new(); +my @tags = $r->run("tag"); +my %dockapps; + +foreach my $tag (@tags) { + $tag =~ /([\w\-+.]+)-([\w.]+)/; + my $dockapp = $1; + my $version = $2; + my $ls = $r->run("ls-tree", $tag, $dockapp); +#for older tags from before directory renaming + if (!$ls) { + $ls = $r->run("ls-tree", $tag, $tag); + } +#for wmfemon_1 + if (!$ls) { + $ls = $r->run("ls-tree", $tag, "$dockapp" . "_$version"); + } + my $sha1 = (split(/\s/, $ls))[2]; + $dockapps{$dockapp}{$version} = $sha1; +} + +foreach my $dockapp (keys %dockapps) { + my $latest_version = (sort keys $dockapps{$dockapp})[-1]; + if ($r->run("diff", "$dockapp-$latest_version", "HEAD", $dockapp)) { + my $commit = $r->run("log", "-1", + "--pretty=format:%H", $dockapp); + my $date = strftime("%Y%m%d", localtime($r->run("log", "-1", + "--pretty=format:%ct", $dockapp))); +#throw out dockapps whose last commit was stripping version names from dirs + unless ($commit eq "eea379d83350ced6166099ebc8f41ff4e3fa1f42") { + my $ls = $r->run("ls-tree", $commit, $dockapp); + if (!$ls) { + $ls = $r->run("ls-tree", $commit, + "$dockapp-$latest_version"); + } + my $sha1 = (split(/\s/, $ls))[2]; + $dockapps{$dockapp}{"$latest_version+$date"} = $sha1; + } + } +} + + +foreach my $dockapp (keys %dockapps) { + my $versions = ""; + foreach my $version (reverse sort keys $dockapps{$dockapp}) { + $versions .= "version-$version = " . + $dockapps{$dockapp}{$version} . "\n"; + } + my $search = quotemeta "[$dockapp]\n"; + $db =~ s/$search/[$dockapp]\n$versions/; +} + +open DB, ">dockapps.db" or die $!; +print DB $db; +close DB; + + + + -- 2.11.4.GIT