Build updates
This commit is contained in:
parent
905ae36174
commit
5cb4c24fad
10 changed files with 837 additions and 605 deletions
|
@ -1,7 +1,6 @@
|
||||||
include MANIFEST.in
|
include MANIFEST.in
|
||||||
include COPYING Makefile requirements.txt
|
include COPYING Makefile requirements.txt
|
||||||
include *.bat
|
|
||||||
include doc/Makefile doc/*.txt doc/*.1 doc/*.html
|
include doc/Makefile doc/*.txt doc/*.1 doc/*.html
|
||||||
include doc/css/*.css doc/js/*.js
|
include doc/css/*.css doc/js/*.js
|
||||||
include scripts/*.py scripts/*.sh
|
include scripts/*.py scripts/*.sh scripts/*.bat
|
||||||
recursive-include tests *.py
|
recursive-include tests *.py
|
||||||
|
|
99
Makefile
99
Makefile
|
@ -2,7 +2,18 @@
|
||||||
PYVER:=2.7
|
PYVER:=2.7
|
||||||
PYTHON:=python$(PYVER)
|
PYTHON:=python$(PYVER)
|
||||||
VERSION:=$(shell $(PYTHON) setup.py --version)
|
VERSION:=$(shell $(PYTHON) setup.py --version)
|
||||||
ARCHIVE:=dosage-$(VERSION).tar.gz
|
MAINTAINER:=$(shell $(PYTHON) setup.py --maintainer)
|
||||||
|
AUTHOR:=$(shell $(PYTHON) setup.py --author)
|
||||||
|
APPNAME:=$(shell $(PYTHON) setup.py --name)
|
||||||
|
LAPPNAME:=$(shell echo $(APPNAME)|tr "[A-Z]" "[a-z]")
|
||||||
|
ARCHIVE_SOURCE:=$(LAPPNAME)-$(VERSION).tar.gz
|
||||||
|
ARCHIVE_WIN32:=$(LAPPNAME)-$(VERSION).exe
|
||||||
|
GITUSER:=wummel
|
||||||
|
GITREPO:=$(LAPPNAME)
|
||||||
|
HOMEPAGE:=$(HOME)/public_html/$(LAPPNAME).git
|
||||||
|
DEBUILDDIR:=$(HOME)/projects/debian/unofficial
|
||||||
|
DEBORIGFILE:=$(DEBUILDDIR)/$(LAPPNAME)_$(VERSION).orig.tar.gz
|
||||||
|
DEBPACKAGEDIR:=$(DEBUILDDIR)/$(LAPPNAME)-$(VERSION)
|
||||||
PY_FILES_DIRS := dosage dosagelib scripts tests
|
PY_FILES_DIRS := dosage dosagelib scripts tests
|
||||||
PY2APPOPTS ?=
|
PY2APPOPTS ?=
|
||||||
# Default pytest options:
|
# Default pytest options:
|
||||||
|
@ -24,32 +35,57 @@ chmod:
|
||||||
find . -type d -exec chmod 755 {} \;
|
find . -type d -exec chmod 755 {} \;
|
||||||
|
|
||||||
dist:
|
dist:
|
||||||
git archive --format=tar --prefix=dosage-$(VERSION)/ HEAD | gzip -9 > ../$(ARCHIVE)
|
[ -d dist ] || mkdir dist
|
||||||
[ -f ../$(ARCHIVE).sha1 ] || sha1sum ../$(ARCHIVE) > ../$(ARCHIVE).sha1
|
git archive --format=tar --prefix=$(LAPPNAME)-$(VERSION)/ HEAD | gzip -9 > dist/$(ARCHIVE_SOURCE)
|
||||||
[ -f ../$(ARCHIVE).asc ] || gpg --detach-sign --armor ../$(ARCHIVE)
|
[ ! -f ../$(ARCHIVE_WIN32) ] || cp ../$(ARCHIVE_WIN32) dist
|
||||||
|
|
||||||
doc/dosage.1.html: doc/dosage.1
|
sign:
|
||||||
man2html -r $< | tail -n +2 | sed 's/Time:.*//g' | sed 's@/:@/@g' > $@
|
[ -f dist/$(ARCHIVE_SOURCE).asc ] || gpg --detach-sign --armor dist/$(ARCHIVE_SOURCE)
|
||||||
|
[ -f dist/$(ARCHIVE_WIN32).asc ] || gpg --detach-sign --armor dist/$(ARCHIVE_WIN32)
|
||||||
|
|
||||||
release: distclean releasecheck dist
|
upload:
|
||||||
git tag v$(VERSION)
|
github-upload $(GITUSRE) $(GITREPO) \
|
||||||
|
dist/$(ARCHIVE_SOURCE) dist/$(ARCHIVE_WIN32) \
|
||||||
|
dist/$(ARCHIVE_SOURCE).asc dist/$(ARCHIVE_WIN32).asc
|
||||||
|
|
||||||
|
testresults:
|
||||||
|
scripts/mktestpage.py testresults.txt > $(HOMEPAGE)/content/testresults.html
|
||||||
|
|
||||||
|
homepage:
|
||||||
|
# update metadata
|
||||||
|
@echo "version: $(VERSION)" > $(HOMEPAGE)/info.yaml
|
||||||
|
@echo "name: $(APPNAME)" >> $(HOMEPAGE)/info.yaml
|
||||||
|
@echo "lname: $(LAPPNAME)" >> $(HOMEPAGE)/info.yaml
|
||||||
|
@echo "maintainer: $(MAINTAINER)" >> $(HOMEPAGE)/info.yaml
|
||||||
|
@echo "author: $(AUTHOR)" >> $(HOMEPAGE)/info.yaml
|
||||||
|
# generate static files
|
||||||
|
$(MAKE) -C doc
|
||||||
|
cp doc/$(LAPPNAME).1.html $(HOMEPAGE)/content
|
||||||
|
make -C $(HOMEPAGE) gen
|
||||||
|
|
||||||
|
release: distclean releasecheck dist sign upload homepage tag register
|
||||||
|
|
||||||
|
tag:
|
||||||
|
git tag upstream/$(VERSION)
|
||||||
|
git push --tags origin upstream/$(VERSION)
|
||||||
|
|
||||||
|
register:
|
||||||
@echo "Register at Python Package Index..."
|
@echo "Register at Python Package Index..."
|
||||||
$(PYTHON) setup.py register
|
$(PYTHON) setup.py register
|
||||||
freecode-submit < dosage.freecode
|
@echo "Submit to freecode..."
|
||||||
|
freecode-submit < $(LAPPNAME).freecode
|
||||||
|
|
||||||
releasecheck: check
|
releasecheck: check
|
||||||
@if egrep -i "xx\.|xxxx|\.xx" doc/changelog.txt > /dev/null; then \
|
@if egrep -i "xx\.|xxxx|\.xx" doc/changelog.txt > /dev/null; then \
|
||||||
echo "Could not release: edit doc/changelog.txt release date"; false; \
|
echo "Could not release: edit doc/changelog.txt release date"; false; \
|
||||||
fi
|
fi
|
||||||
# @if ! grep "Version: $(VERSION)" dosage.freecode > /dev/null; then \
|
@if ! grep "Version: $(VERSION)" $(LAPPNAME).freecode > /dev/null; then \
|
||||||
# echo "Could not release: edit dosage.freecode version"; false; \
|
echo "Could not release: edit $(LAPPNAME).freecode version"; false; \
|
||||||
# fi
|
fi
|
||||||
|
|
||||||
# The check programs used here are mostly local scripts on my private system.
|
# The check programs used here are mostly local scripts on my private system.
|
||||||
# So for other developers there is no need to execute this target.
|
# So for other developers there is no need to execute this target.
|
||||||
check:
|
check:
|
||||||
[ ! -d .svn ] || check-nosvneolstyle -v
|
|
||||||
check-copyright
|
check-copyright
|
||||||
check-pofiles -v
|
check-pofiles -v
|
||||||
py-tabdaddy
|
py-tabdaddy
|
||||||
|
@ -67,7 +103,7 @@ pyflakes:
|
||||||
pyflakes $(PY_FILES_DIRS)
|
pyflakes $(PY_FILES_DIRS)
|
||||||
|
|
||||||
count:
|
count:
|
||||||
@sloccount $(PY_FILES_DIRS) | grep "Total Physical Source Lines of Code"
|
@sloccount $(PY_FILES_DIRS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
find . -name \*.pyc -delete
|
find . -name \*.pyc -delete
|
||||||
|
@ -75,8 +111,8 @@ clean:
|
||||||
rm -rf build dist
|
rm -rf build dist
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -rf build dist Dosage.egg-info dosage.prof test.sh testresults.txt
|
rm -rf build dist $(APPNAME).egg-info dosage.prof test.sh testresults.txt
|
||||||
rm -f _Dosage_configdata.py MANIFEST
|
rm -f _$(APPNAME)_configdata.py MANIFEST
|
||||||
|
|
||||||
localbuild:
|
localbuild:
|
||||||
$(PYTHON) setup.py build
|
$(PYTHON) setup.py build
|
||||||
|
@ -84,11 +120,32 @@ localbuild:
|
||||||
test: localbuild
|
test: localbuild
|
||||||
env LANG=en_US.utf-8 http_proxy="" $(PYTHON) -m pytest $(PYTESTOPTS) $(TESTOPTS) $(TESTS)
|
env LANG=en_US.utf-8 http_proxy="" $(PYTHON) -m pytest $(PYTESTOPTS) $(TESTOPTS) $(TESTS)
|
||||||
|
|
||||||
|
doc/$(LAPPNAME).txt: doc/$(LAPPNAME).1
|
||||||
|
# make text file from man page for Windows builds
|
||||||
|
cols=`stty size | cut -d" " -f2`; stty cols 72; man -l $< | sed -e 's/.\cH//g' > $@; stty cols $$cols
|
||||||
|
|
||||||
deb:
|
deb:
|
||||||
git-buildpackage --git-upstream-branch=master --git-debian-branch=debian --git-ignore-new
|
# build a debian package
|
||||||
|
[ -f $(DEBORIGFILE) ] || cp dist/$(ARCHIVE_SOURCE) $(DEBORIGFILE) $(DEBUILDDIR)/$(LAPPNAME)_$(VERSION).orig.tar.gz
|
||||||
|
sed -i 's/VERSION:=.*/VERSION:=$(VERSION)/' $(DEBUILDDIR)/$(LAPPNAME).mak
|
||||||
|
[ -d $(DEBPACKAGEDIR) ] || (cd $(DEBUILDDIR); \
|
||||||
|
patool extract $(DEBORIGFILE); \
|
||||||
|
cd $(CURDIR); \
|
||||||
|
git checkout debian; \
|
||||||
|
cp -r debian $(DEBPACKAGEDIR); \
|
||||||
|
git checkout master)
|
||||||
|
rm -f $(DEBUILDDIR)/$(LAPPNAME)
|
||||||
|
$(MAKE) -C $(DEBUILDDIR) $(LAPPNAME)
|
||||||
|
|
||||||
update-copyright:
|
update-copyright:
|
||||||
update-copyright --holder="Bastian Kleineidam"
|
# update-copyright is a local tool which updates the copyright year for each
|
||||||
|
# modified file.
|
||||||
|
update-copyright --holder="$(MAINTAINER)"
|
||||||
|
|
||||||
.PHONY: update-copyright deb test clean distclean count pyflakes
|
changelog:
|
||||||
.PHONY: doccheck check releasecheck release dist chmod localbuild
|
# github-changelog is a local tool which parses the changelog and automatically
|
||||||
|
# closes issues mentioned in the changelog entries.
|
||||||
|
github-changelog $(DRYRUN) $(GITUSER) $(GITREPO) doc/changelog.txt
|
||||||
|
|
||||||
|
.PHONY: update-copyright deb test clean distclean count pyflakes changelog
|
||||||
|
.PHONY: doccheck check releasecheck release dist chmod localbuild sign register tag
|
||||||
|
|
15
doc/Makefile
15
doc/Makefile
|
@ -1,14 +1,11 @@
|
||||||
MANFILES:=dosage.1.html
|
all: dosage.1.html dosage.txt
|
||||||
|
|
||||||
all: man testresults.html
|
dosage.txt: dosage.1
|
||||||
|
# make text file from man page for Windows builds
|
||||||
man: $(MANFILES)
|
cols=`stty size | cut -d" " -f2`; stty cols 72; man -l $< | sed -e 's/.\cH//g' > $@; stty cols $$cols
|
||||||
|
|
||||||
dosage.1.html: dosage.1
|
dosage.1.html: dosage.1
|
||||||
man2html -r $< | tail -n +2 | sed 's/Time:.*//g' | sed 's@/:@/@g' > $@
|
man2html -r $< | tail -n +2 | sed 's/Time:.*//g' | sed 's@/:@/@g' > $@
|
||||||
# patch --no-backup-if-mismatch --quiet $@ dosage.1.html.diff
|
patch --no-backup-if-mismatch --quiet $@ dosage.1.html.diff
|
||||||
|
|
||||||
testresults.html: ../testresults.txt
|
.PHONY: all
|
||||||
../scripts/mktestpage.py $< > $@
|
|
||||||
|
|
||||||
.PHONY: all man
|
|
||||||
|
|
|
@ -166,7 +166,7 @@ Jonathan Jacobs <korpse@slipgate.za.net>
|
||||||
.br
|
.br
|
||||||
Tristan Seligmann <mithrandi@slipgate.za.net>
|
Tristan Seligmann <mithrandi@slipgate.za.net>
|
||||||
.br
|
.br
|
||||||
Bastian Kleineidam <calvin@users.sourceforge.net>
|
Bastian Kleineidam <bastian.kleineidam@web.de>
|
||||||
.SH COPYRIGHT
|
.SH COPYRIGHT
|
||||||
Copyright \(co 2004-2005 Tristan Seligmann and Jonathan Jacobs
|
Copyright \(co 2004-2005 Tristan Seligmann and Jonathan Jacobs
|
||||||
.br
|
.br
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
</HEAD><BODY>
|
</HEAD><BODY>
|
||||||
<H1>DOSAGE</H1>
|
<H1>DOSAGE</H1>
|
||||||
Section: User Commands (1)<BR><A HREF="#index">Index</A>
|
Section: User Commands (1)<BR><A HREF="#index">Index</A>
|
||||||
<A HREF="../index.html">Return to Main Contents</A><HR>
|
<A HREF="index.html">Return to Main Contents</A><HR>
|
||||||
|
|
||||||
<A NAME="lbAB"> </A>
|
<A NAME="lbAB"> </A>
|
||||||
<H2>NAME</H2>
|
<H2>NAME</H2>
|
||||||
|
@ -240,7 +240,7 @@ Jonathan Jacobs <<A HREF="mailto:korpse@slipgate.za.net">korpse@slipgate.za.n
|
||||||
Tristan Seligmann <<A HREF="mailto:mithrandi@slipgate.za.net">mithrandi@slipgate.za.net</A>>
|
Tristan Seligmann <<A HREF="mailto:mithrandi@slipgate.za.net">mithrandi@slipgate.za.net</A>>
|
||||||
<BR>
|
<BR>
|
||||||
|
|
||||||
Bastian Kleineidam <<A HREF="mailto:calvin@users.sourceforge.net">calvin@users.sourceforge.net</A>>
|
Bastian Kleineidam <<A HREF="mailto:bastian.kleineidam@web.de">bastian.kleineidam@web.de</A>>
|
||||||
<A NAME="lbAN"> </A>
|
<A NAME="lbAN"> </A>
|
||||||
<H2>COPYRIGHT</H2>
|
<H2>COPYRIGHT</H2>
|
||||||
|
|
||||||
|
@ -269,7 +269,7 @@ Copyright © 2012 Bastian Kleineidam
|
||||||
</DL>
|
</DL>
|
||||||
<HR>
|
<HR>
|
||||||
This document was created by
|
This document was created by
|
||||||
<A HREF="/cgi-bin/man/man2html">man2html</A>,
|
man2html,
|
||||||
using the manual pages.<BR>
|
using the manual pages.<BR>
|
||||||
|
|
||||||
</BODY>
|
</BODY>
|
||||||
|
|
22
doc/dosage.1.html.diff
Normal file
22
doc/dosage.1.html.diff
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
diff --git i/doc/dosage.1.html w/doc/dosage.1.html
|
||||||
|
index e4f07f0..b8110eb 100644
|
||||||
|
--- i/doc/dosage.1.html
|
||||||
|
+++ w/doc/dosage.1.html
|
||||||
|
@@ -4,7 +4,7 @@
|
||||||
|
</HEAD><BODY>
|
||||||
|
<H1>DOSAGE</H1>
|
||||||
|
Section: User Commands (1)<BR><A HREF="#index">Index</A>
|
||||||
|
-<A HREF="../index.html">Return to Main Contents</A><HR>
|
||||||
|
+<A HREF="index.html">Return to Main Contents</A><HR>
|
||||||
|
|
||||||
|
<A NAME="lbAB"> </A>
|
||||||
|
<H2>NAME</H2>
|
||||||
|
@@ -269,7 +269,7 @@ Copyright © 2012 Bastian Kleineidam
|
||||||
|
</DL>
|
||||||
|
<HR>
|
||||||
|
This document was created by
|
||||||
|
-<A HREF="/cgi-bin/man/man2html">man2html</A>,
|
||||||
|
+man2html,
|
||||||
|
using the manual pages.<BR>
|
||||||
|
|
||||||
|
</BODY>
|
160
doc/dosage.txt
Normal file
160
doc/dosage.txt
Normal file
|
@ -0,0 +1,160 @@
|
||||||
|
DOSAGE(1) DOSAGE(1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
NAME
|
||||||
|
dosage - a commandline webcomic downloader and archiver
|
||||||
|
|
||||||
|
SYNOPSIS
|
||||||
|
dosage [options] module...
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
dosage is an application designed to keep a local mirror of
|
||||||
|
specific web comics and other picture-based content, such as
|
||||||
|
Picture Of The Day sites, with a variety of options for updat‐
|
||||||
|
ing and maintaining collections.
|
||||||
|
|
||||||
|
OPTIONS
|
||||||
|
-b PATH, --basepath=PATH
|
||||||
|
Specifies a base path to put comic subdirectories. The
|
||||||
|
default is Comics.
|
||||||
|
|
||||||
|
--baseurl=PATH
|
||||||
|
Specifies the base URL for output events. The default is
|
||||||
|
a local file URI.
|
||||||
|
|
||||||
|
-a, --all
|
||||||
|
Traverses all available strips backwards from the cur‐
|
||||||
|
rent one. This can be useful you want a full collection
|
||||||
|
of a new comic strip, or update an existing one where
|
||||||
|
files are missing. Catchups can start at a specific
|
||||||
|
strip by using the index syntax, see the INDEX SYNTAX
|
||||||
|
and SPECIAL SYNTAX sections for more information. This
|
||||||
|
is useful when you missed some days and want only to
|
||||||
|
download the missing files. To make this task easy, the
|
||||||
|
traversal ends at the first existing image file when
|
||||||
|
starting from an index (excluding the index itself).
|
||||||
|
|
||||||
|
-h, --help
|
||||||
|
Output brief help information.
|
||||||
|
|
||||||
|
-l, --list
|
||||||
|
List available comic modules in multi-column fashion.
|
||||||
|
|
||||||
|
--singlelist
|
||||||
|
List available comic modules in single-column fashion.
|
||||||
|
|
||||||
|
-m MODULE, --modulehelp=MODULE
|
||||||
|
Output module-specific help for MODULE.
|
||||||
|
|
||||||
|
-o OUTPUT, --output=OUTPUT
|
||||||
|
OUTPUT may be any one of the following:
|
||||||
|
|
||||||
|
html - Writes out an HTML file linking to the strips
|
||||||
|
actually downloaded in the current run, named by date
|
||||||
|
(ala dailystrips). The files can be found in the html
|
||||||
|
directory of your Comics directory.
|
||||||
|
|
||||||
|
rss - Writes out an RSS feed detailing what strips were
|
||||||
|
downloaded in the last 24 hours. The feed can be found
|
||||||
|
in Comics/dailydose.xml.
|
||||||
|
|
||||||
|
rss - Writes an RSS feed with all of the strips down‐
|
||||||
|
loaded during the run, for use with your favourite RSS
|
||||||
|
aggregator.
|
||||||
|
|
||||||
|
-t, --timestamps
|
||||||
|
Print timestamps for all output at any level.
|
||||||
|
|
||||||
|
-v, --verbose
|
||||||
|
Increase the output level by one with each occurence.
|
||||||
|
|
||||||
|
-V, --version
|
||||||
|
Display the version number. module At least one valid
|
||||||
|
module must be specified. A list of valid modules can be
|
||||||
|
found by passing the -l option. Multiple module argu‐
|
||||||
|
ments can be specified on the command line. Module
|
||||||
|
names are case insensitive, and it is sufficient to
|
||||||
|
specify a unique substring of the module name.
|
||||||
|
|
||||||
|
INDEX SYNTAX
|
||||||
|
Instead of starting at the latest comic strip, an index lets
|
||||||
|
dosage start at a certain strip. The index can be specified by
|
||||||
|
appending a colon : and the index name after the module. Multi‐
|
||||||
|
ple comma-spearated indices can also be specified.
|
||||||
|
|
||||||
|
The index name itself usually is the part of the comic strip
|
||||||
|
URL that identifiess a strip, eg. a number or a date. The
|
||||||
|
expected format is documented when using the --modulehelp
|
||||||
|
option.
|
||||||
|
|
||||||
|
SPECIAL SYNTAX
|
||||||
|
@ This expands to mean all the comics currently in your
|
||||||
|
Comics directory. All other specified comic module names
|
||||||
|
will be ignored.
|
||||||
|
|
||||||
|
@@ This expands to mean all the comics available to Dosage.
|
||||||
|
|
||||||
|
INDEX SYNTAX can not be used with SPECIAL SYNTAX.
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
Retrieve all Mega Tokyo comics:
|
||||||
|
dosage -a megatokyo
|
||||||
|
|
||||||
|
Retrieve the current comic of Cyanide and Happiness:
|
||||||
|
dosage cyanideandhappiness
|
||||||
|
|
||||||
|
Retrieve the current strip of all comics in your Comics direc‐
|
||||||
|
tory:
|
||||||
|
dosage @
|
||||||
|
|
||||||
|
Retrieve the current strip of every comic that there is a mod‐
|
||||||
|
ule for:
|
||||||
|
dosage @@
|
||||||
|
|
||||||
|
Retrieve the Penny Arcade strip for a given index:
|
||||||
|
dosage pennyarcade:2004-07-22
|
||||||
|
Retrieve Calvin and Hobbes strips from a given index going
|
||||||
|
backwards to the beginning until an existing file is found:
|
||||||
|
dosage -c calvinandhobbes:20120722
|
||||||
|
|
||||||
|
ENVIRONMENT
|
||||||
|
HTTP_PROXY
|
||||||
|
mainline will use the specified HTTP proxy when down‐
|
||||||
|
loading URL contents.
|
||||||
|
|
||||||
|
NOTES
|
||||||
|
Should retrieval fail on any given strip mainline will attempt
|
||||||
|
to retry. However the retry information is only outputted in
|
||||||
|
the second and successive output levels.
|
||||||
|
|
||||||
|
At the time of writing, a complete Dosage collection weighs in
|
||||||
|
at around 3.0GB.
|
||||||
|
|
||||||
|
RETURN VALUE
|
||||||
|
The return value greater than zero when
|
||||||
|
|
||||||
|
· a program error occurred.
|
||||||
|
|
||||||
|
· comics could not be found or downloaded
|
||||||
|
|
||||||
|
· the program run was aborted with Ctrl-C
|
||||||
|
|
||||||
|
Else the return value is zero.
|
||||||
|
|
||||||
|
BUGS
|
||||||
|
Users can report or view bugs, patches or feature suggestions
|
||||||
|
at https://github.com/wummel/dosage/issues
|
||||||
|
|
||||||
|
AUTHORS
|
||||||
|
Jonathan Jacobs <korpse@slipgate.za.net>
|
||||||
|
Tristan Seligmann <mithrandi@slipgate.za.net>
|
||||||
|
Bastian Kleineidam <bastian.kleineidam@web.de>
|
||||||
|
|
||||||
|
COPYRIGHT
|
||||||
|
Copyright © 2004-2005 Tristan Seligmann and Jonathan Jacobs
|
||||||
|
Copyright © 2012 Bastian Kleineidam
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DOSAGE(1)
|
1086
doc/testresults.html
1086
doc/testresults.html
File diff suppressed because it is too large
Load diff
|
@ -3,30 +3,25 @@
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
import stat
|
|
||||||
import time
|
import time
|
||||||
sys.path.append(os.path.join(os.path.dirname(__file__), ".."))
|
sys.path.append(os.path.join(os.path.dirname(__file__), ".."))
|
||||||
from dosagelib.scraper import get_scrapers
|
from dosagelib.scraper import get_scrapers
|
||||||
|
|
||||||
htmltemplate = """
|
htmltemplate = """
|
||||||
<!DOCTYPE html>
|
---
|
||||||
<head>
|
extends: base.j2
|
||||||
<meta charset="utf-8">
|
default_block: content
|
||||||
<title>Dosage test results</title>
|
title: Dosage by Bastian Kleineidam
|
||||||
<meta name="description" content="">
|
description: a commandline webcomic downloader and archiver
|
||||||
<meta name="viewport" content="width=device-width">
|
---
|
||||||
<link rel="stylesheet" href="css/normalize.css">
|
|
||||||
<link rel="stylesheet" href="css/main.css">
|
<div class="inner clearfix">
|
||||||
<link rel="stylesheet" href="css/dosage.css">
|
<section id="main-content">
|
||||||
<script src="js/masonry.min.js"></script>
|
|
||||||
<script src="http://use.edgefonts.net/open-sans.js"></script>
|
<h2>Dosage test results from %(date)s</h2>
|
||||||
</head>
|
<p>Note that it is almost impossible to get a 100%% OK test run
|
||||||
<body>
|
due to temporary site failures.</p>
|
||||||
<p>Dosage test results from %(date)s</p>
|
<div id="testresults">
|
||||||
<p>Note that it is almost impossible to get a 100% OK test run
|
|
||||||
due to temporary network failures or sites that are just updating
|
|
||||||
the comic page.</p>
|
|
||||||
<div id="container">
|
|
||||||
%(content)s
|
%(content)s
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
|
@ -36,14 +31,12 @@ window.onload = function() {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def get_mtime (filename):
|
def get_mtime (filename):
|
||||||
"""Return modification time of filename."""
|
"""Return modification time of filename."""
|
||||||
return os.stat(filename)[stat.ST_MTIME]
|
return os.path.getmtime(filename)
|
||||||
|
|
||||||
|
|
||||||
def strdate(t):
|
def strdate(t):
|
||||||
|
|
12
setup.py
12
setup.py
|
@ -20,6 +20,7 @@ except ImportError:
|
||||||
has_py2exe = False
|
has_py2exe = False
|
||||||
from distutils.core import setup, Distribution
|
from distutils.core import setup, Distribution
|
||||||
from distutils.command.install_lib import install_lib
|
from distutils.command.install_lib import install_lib
|
||||||
|
from distutils.command.register import register
|
||||||
from distutils import util
|
from distutils import util
|
||||||
from distutils.file_util import write_file
|
from distutils.file_util import write_file
|
||||||
|
|
||||||
|
@ -339,6 +340,16 @@ except ImportError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class MyRegister (register, object):
|
||||||
|
"""Custom register command."""
|
||||||
|
|
||||||
|
def build_post_data(self, action):
|
||||||
|
"""Force application name to lower case."""
|
||||||
|
data = super(MyRegister, self).build_post_data(action)
|
||||||
|
data['name'] = data['name'].lower()
|
||||||
|
return data
|
||||||
|
|
||||||
|
|
||||||
args = dict(
|
args = dict(
|
||||||
name = AppName,
|
name = AppName,
|
||||||
version = AppVersion,
|
version = AppVersion,
|
||||||
|
@ -361,6 +372,7 @@ args = dict(
|
||||||
cmdclass = {
|
cmdclass = {
|
||||||
'install_lib': MyInstallLib,
|
'install_lib': MyInstallLib,
|
||||||
'py2exe': MyPy2exe,
|
'py2exe': MyPy2exe,
|
||||||
|
'register': MyRegister,
|
||||||
},
|
},
|
||||||
options = {
|
options = {
|
||||||
"py2exe": py2exe_options,
|
"py2exe": py2exe_options,
|
||||||
|
|
Loading…
Reference in a new issue