diff options
| author | Andreas Brachold <vdr07@deltab.de> | 2007-11-18 08:41:53 +0000 |
|---|---|---|
| committer | Andreas Brachold <vdr07@deltab.de> | 2007-11-18 08:41:53 +0000 |
| commit | 5a42246e9309641278c119528133fb1bf0416f1e (patch) | |
| tree | 9c7b4d37d8c681421e37bef8f3e1d09396d51374 | |
| parent | 77f9f2cfd5656e4f5b2407915ca7122ec2e28b0a (diff) | |
| download | xxv-5a42246e9309641278c119528133fb1bf0416f1e.tar.gz xxv-5a42246e9309641278c119528133fb1bf0416f1e.tar.bz2 | |
* Reorder file names of documentation
* Create upgrade-xxv-db.sql only with user data tables
| -rw-r--r-- | INSTALL | 95 | ||||
| -rw-r--r-- | Makefile | 13 | ||||
| -rw-r--r-- | README | 7 | ||||
| -rw-r--r-- | README.txt | 3 | ||||
| -rwxr-xr-x | bin/xxvd | 2 | ||||
| -rw-r--r-- | contrib/export-data.sql | 3 | ||||
| -rw-r--r-- | contrib/import-data.sql | 5 | ||||
| -rwxr-xr-x | contrib/update-xxv | 2 | ||||
| -rw-r--r-- | contrib/upgrade-xxv-db.sql | 192 | ||||
| -rw-r--r-- | doc/CHANGELOG (renamed from doc/CHANGELOG.txt) | 0 | ||||
| -rw-r--r-- | doc/COPYING (renamed from doc/COPYING.txt) | 0 | ||||
| -rw-r--r-- | doc/LIESMICH (renamed from doc/LIESMICH.txt) | 0 | ||||
| -rw-r--r-- | doc/NEWS (renamed from doc/NEWS.txt) | 0 | ||||
| -rw-r--r-- | doc/README (renamed from doc/README.txt) | 0 | ||||
| -rw-r--r-- | doc/TODO.txt | 6 | ||||
| -rwxr-xr-x | install.sh | 2 | ||||
| -rw-r--r-- | lib/XXV/OUTPUT/Console.pm | 26 | ||||
| -rw-r--r-- | lib/XXV/OUTPUT/Html.pm | 25 |
18 files changed, 171 insertions, 210 deletions
@@ -0,0 +1,95 @@ + + +After download xxv package, it's must unpacked. Please replace {VERSION} with +your active release number and $SOURCEDIR with your prefered directory used by +unpacking. + +#> cd $SOURCEDIR +#> tar xvzf xxv-{VERSION}.tgz +#> cd xxv-{VERSION} + +Install mysql ------------------------------------------------------------------ + +If MySQL is not yet installed, install it from prebuilded packages or build +it from source. + +http://www.mysql.com/ +http://dev.mysql.com/doc/refman/5.0/en/installing-source.html + +Lets install.sh do the work ---------------------------------------------------- + +If you don't have prebuilded perl package for your system. XXV help with a +installation script $SOURCEDIR/install.sh. ( On Debian use ./install-debian.sh ) + +#> cd $SOURCEDIR/xxv-{VERSION}/ +#> ./install.sh + +It's will be install xxv and depends perl modules inside /usr/local/... and +create configuration, database and runlevel scripts. + +Manual build and install depends perl modules ---------------------------------- + +For alternative way is installation with a little helper "Bundle::Xxv". +It's enable the build of depends perl modules with online installation via cpan. +http://www.cpan.org/ + +#> cd $SOURCEDIR/xxv-{VERSION}/lib +#> mkdir -p ~/.cpan/Bundle +#> cp Bundle/Xxv.pm ~/.cpan/Bundle +#> perl -MCPAN -e 'install Bundle::Xxv' + +Copy some files ---------------------------------------------------------------- + +Install the man-page, which can be viewed later with man xxvd. + +#> cd $SOURCEDIR/xxv-{VERSION}/ +#> cp doc/xxvd.1 /usr/share/man/man1 + +Enable rotation of logging files ----------------------------------------------- + +And don't forgot to activate the rotate of the log files. + +#> cd $SOURCEDIR/xxv-{VERSION}/ +#> cp etc/logrotate.d/xxvd /etc/logrotate.d/xxvd + +Adjust and install configuration file ------------------------------------------ + +There is a example of configuration file, used by xxvd. Adjust now database +connection and the mysql account, see below at database creation for details. + +#> cd $SOURCEDIR/xxv-{VERSION}/ +#> nano etc/xxvd.cfg.example +#> cp etc/xxvd.cfg.example /etc/xxvd.cfg + +And as last step adjust your settings, like installation folder, location of +configuration file and copy this runlevel script. + +#> cd $SOURCEDIR/xxv-{VERSION}/ +#> nano etc/xxvd +#> cp etc/xxvd /etc/init.d/xxvd + +Create initial database -------------------------------------------------------- + +Use the provided script, to create the xxv database. Adapt before username and +its password on 'contrib/create-database.sql', for a xxv used mysql account, +with your personal preferences. + +#> cd $SOURCEDIR/xxv-{VERSION}/ +#> cat contrib/create-database.sql | mysql -u root + +Same can do alternatively in follow individually steps: + +#> mysql -u root -e "create database xxv;" +#> mysql -u root -e "grant all privileges on xxv.* to username@localhost IDENTIFIED BY 'password';" +#> mysql -u root -e "flush privileges;" + +Now register the database connection and the mysql account in /etc/xxvd.cfg: + +[General] +DSN=DBI:mysql:database=xxv;host=localhost;port=3306 +PWD=password +USR=username + + + + @@ -4,7 +4,7 @@ # $Id$ XXV = xxv -VERSION = 1.0 +VERSION = 1.0.1 ### The name of the distribution archive: @@ -15,7 +15,7 @@ TMPDIR = /tmp ### The subdirectories: ### Targets: -INCLUDE = bin contrib doc etc html share lib locale wml README.txt Makefile install.sh +INCLUDE = bin contrib doc etc html share lib locale wml README INSTALL Makefile install.sh EXCLUDE = "*~" "*.bak" "*.org" "*.diff" "xxvd.pid" "$(XXV)-*.tgz" @@ -49,15 +49,13 @@ removefiles: || exit 1;\ done -compatiblesqldump: - @sed -e "s/ DEFAULT CHARSET=latin1//g" contrib/upgrade-xxv-db.sql > $(TMPDIR)/$(ARCHIVE)/contrib/upgrade-xxv-db.sql - updateversion: @sed -e "s/__VERSION__/$(VERSION)/g" bin/xxvd > $(TMPDIR)/$(ARCHIVE)/bin/xxvd +DBTABLES = $(shell cat ./contrib/update-xxv | grep tables= | cut -d '=' -f 2 | sed -e s/\'//g;) updatesql: - @echo Please type the DB-Password for root: - @mysqldump -p -n -d --add-drop-table -p -u root xxv 1> ./contrib/upgrade-xxv-db.sql + @echo Please type the DB-Password for root: + @mysqldump -p -n -d --add-drop-table --compatible=mysql40,no_table_options -p -u root xxv $(DBTABLES) -r ./contrib/upgrade-xxv-db.sql setpermission: @find $(TMPDIR)/$(ARCHIVE) -type d -exec chmod 755 {} \; @@ -74,7 +72,6 @@ dist: tmpfolder\ copyfiles\ removefiles\ updateversion\ - compatiblesqldump\ setpermission @chown root.root -R $(TMPDIR)/$(ARCHIVE)/* @tar czf $(PACKAGE).tgz --exclude=.svn -C $(TMPDIR) $(ARCHIVE) @@ -0,0 +1,7 @@ + +Please take a look into file INSTALL and doc/ files for all usefull stuff. + +-- + +Schaut bitte in die Datei INSTALL und in die doc/ Dateien für +weiterführende Informationen. diff --git a/README.txt b/README.txt deleted file mode 100644 index fbe3cdd..0000000 --- a/README.txt +++ /dev/null @@ -1,3 +0,0 @@ -Please take a look in the doc/*.txt Files for all usefull stuff. ------------------- -Schaut bitte in das doc/*.txt Dateien für weiterführende Informationen.
\ No newline at end of file @@ -43,7 +43,7 @@ $|++; my $REV = &getRev() || (split(/ /, '$Revision$'))[1]; my $MODULES; -my $VERSION = '1.0'; +my $VERSION = '1.0.1'; my $VDRVERSION = 0; my $CLEANUP; my $DBCACHE = {}; diff --git a/contrib/export-data.sql b/contrib/export-data.sql index d863159..3154497 100644 --- a/contrib/export-data.sql +++ b/contrib/export-data.sql @@ -3,8 +3,9 @@ -- select * INTO OUTFILE '/tmp/autotimer.sav' from AUTOTIMER; -select * INTO OUTFILE '/tmp/user.sav' from USER; select * INTO OUTFILE '/tmp/chronicle.sav' from CHRONICLE; select * INTO OUTFILE '/tmp/medialib_actors.sav' from MEDIALIB_ACTORS; select * INTO OUTFILE '/tmp/medialib_videodata.sav' from MEDIALIB_VIDEODATA; select * INTO OUTFILE '/tmp/medialib_videogenre.sav' from MEDIALIB_VIDEOGENRE; +select * INTO OUTFILE '/tmp/user.sav' from USER; + diff --git a/contrib/import-data.sql b/contrib/import-data.sql index fbad5e8..003ff05 100644 --- a/contrib/import-data.sql +++ b/contrib/import-data.sql @@ -4,14 +4,15 @@ DELETE from AUTOTIMER; DELETE from CHRONICLE; -DELETE from USER; DELETE from MEDIALIB_ACTORS; DELETE from MEDIALIB_VIDEODATA; DELETE from MEDIALIB_VIDEOGENRE; +DELETE from USER; load data infile '/tmp/autotimer.sav' into table AUTOTIMER; -load data infile '/tmp/user.sav' into table USER; load data infile '/tmp/chronicle.sav' into table CHRONICLE; load data infile '/tmp/medialib_actors.sav' into table MEDIALIB_ACTORS; load data infile '/tmp/medialib_videodata.sav' into table MEDIALIB_VIDEODATA; load data infile '/tmp/medialib_videogenre.sav' into table MEDIALIB_VIDEOGENRE; +load data infile '/tmp/user.sav' into table USER; + diff --git a/contrib/update-xxv b/contrib/update-xxv index e4a6dc4..b9151e5 100755 --- a/contrib/update-xxv +++ b/contrib/update-xxv @@ -22,7 +22,7 @@ actualVersion=25 # Specify tables to export before and import after update # -tables='AUTOTIMER USER CHRONICLE MEDIALIB_ACTORS MEDIALIB_VIDEODATA MEDIALIB_VIDEOGENRE' +tables='AUTOTIMER CHRONICLE MEDIALIB_ACTORS MEDIALIB_VIDEODATA MEDIALIB_VIDEOGENRE USER' showTitle() { diff --git a/contrib/upgrade-xxv-db.sql b/contrib/upgrade-xxv-db.sql index 7ca4f5e..cbfd939 100644 --- a/contrib/upgrade-xxv-db.sql +++ b/contrib/upgrade-xxv-db.sql @@ -1,8 +1,14 @@ --- MySQL dump 10.10 +-- MySQL dump 10.11 -- -- Host: localhost Database: xxv -- ------------------------------------------------------ --- Server version 5.0.30-Debian_3 +-- Server version 5.0.32-Debian_7etch1 +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,MYSQL40,NO_TABLE_OPTIONS' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -- -- Table structure for table `AUTOTIMER` @@ -30,44 +36,7 @@ CREATE TABLE `AUTOTIMER` ( `stopdate` datetime default NULL, `count` int(11) default NULL, PRIMARY KEY (`Id`) -) TYPE=MyISAM; - --- --- Table structure for table `CHANNELGROUPS` --- - -DROP TABLE IF EXISTS `CHANNELGROUPS`; -CREATE TABLE `CHANNELGROUPS` ( - `Id` int(11) NOT NULL auto_increment, - `Name` varchar(100) default 'unknown', - `Counter` int(11) default '0', - PRIMARY KEY (`Id`) -) TYPE=MyISAM; - --- --- Table structure for table `CHANNELS` --- - -DROP TABLE IF EXISTS `CHANNELS`; -CREATE TABLE `CHANNELS` ( - `Id` varchar(100) NOT NULL, - `Name` varchar(100) NOT NULL default '', - `Frequency` int(11) NOT NULL default '0', - `Parameters` varchar(100) default '', - `Source` varchar(100) default NULL, - `Srate` int(11) default '0', - `VPID` varchar(100) default '', - `APID` varchar(100) default '', - `TPID` varchar(100) default '', - `CA` varchar(100) default '', - `SID` int(11) default '0', - `NID` int(11) default '0', - `TID` int(11) default '0', - `RID` int(11) default '0', - `GRP` int(11) default '0', - `POS` int(11) NOT NULL, - PRIMARY KEY (`Id`) -) TYPE=MyISAM; +); -- -- Table structure for table `CHRONICLE` @@ -83,32 +52,7 @@ CREATE TABLE `CHRONICLE` ( `duration` int(11) NOT NULL default '0', PRIMARY KEY (`id`), UNIQUE KEY `hash` (`hash`) -) TYPE=MyISAM; - --- --- Table structure for table `EPG` --- - -DROP TABLE IF EXISTS `EPG`; -CREATE TABLE `EPG` ( - `eventid` bigint(20) unsigned NOT NULL default '0', - `title` text NOT NULL, - `subtitle` text, - `description` text, - `channel_id` varchar(100) NOT NULL default '', - `starttime` datetime NOT NULL default '0000-00-00 00:00:00', - `duration` int(11) NOT NULL default '0', - `tableid` tinyint(4) default '0', - `image` text, - `version` tinyint(3) default '0', - `video` varchar(100) default '', - `audio` varchar(255) default '', - `addtime` datetime NOT NULL default '0000-00-00 00:00:00', - `vpstime` datetime default '0000-00-00 00:00:00', - PRIMARY KEY (`eventid`), - KEY `starttime` (`starttime`), - KEY `channel_id` (`channel_id`) -) TYPE=MyISAM; +); -- -- Table structure for table `MEDIALIB_ACTORS` @@ -121,7 +65,7 @@ CREATE TABLE `MEDIALIB_ACTORS` ( `imgurl` varchar(255) NOT NULL default '', `checked` timestamp NOT NULL, PRIMARY KEY (`name`) -) TYPE=MyISAM; +); -- -- Table structure for table `MEDIALIB_VIDEODATA` @@ -169,7 +113,7 @@ CREATE TABLE `MEDIALIB_VIDEODATA` ( KEY `mediatype` (`mediatype`,`istv`), FULLTEXT KEY `actors_idx` (`actors`), FULLTEXT KEY `comment` (`comment`) -) TYPE=MyISAM; +); -- -- Table structure for table `MEDIALIB_VIDEOGENRE` @@ -180,102 +124,7 @@ CREATE TABLE `MEDIALIB_VIDEOGENRE` ( `video_id` int(10) unsigned NOT NULL default '0', `genre_id` int(10) unsigned NOT NULL default '0', PRIMARY KEY (`video_id`,`genre_id`) -) TYPE=MyISAM; - --- --- Table structure for table `MUSIC` --- - -DROP TABLE IF EXISTS `MUSIC`; -CREATE TABLE `MUSIC` ( - `Id` int(11) unsigned NOT NULL auto_increment, - `FILE` text NOT NULL, - `ARTIST` varchar(128) default 'unknown', - `ALBUM` varchar(128) default 'unknown', - `TITLE` varchar(128) default 'unknown', - `COMMENT` varchar(128) default NULL, - `TRACKNUM` varchar(10) default '0', - `YEAR` smallint(4) unsigned default NULL, - `GENRE` varchar(128) default NULL, - `BITRATE` smallint(4) unsigned default NULL, - `FREQUENCY` varchar(4) default NULL, - `SECS` int(11) NOT NULL, - PRIMARY KEY (`Id`) -) TYPE=MyISAM; - --- --- Table structure for table `OLDEPG` --- - -DROP TABLE IF EXISTS `OLDEPG`; -CREATE TABLE `OLDEPG` ( - `eventid` bigint(20) unsigned NOT NULL default '0', - `title` text NOT NULL, - `subtitle` text, - `description` text, - `channel_id` varchar(100) NOT NULL default '', - `starttime` datetime NOT NULL default '0000-00-00 00:00:00', - `duration` int(11) NOT NULL default '0', - `tableid` tinyint(4) default '0', - `image` text, - `version` tinyint(3) default '0', - `video` varchar(100) default '', - `audio` varchar(255) default '', - `addtime` datetime NOT NULL default '0000-00-00 00:00:00', - `vpstime` datetime default '0000-00-00 00:00:00', - PRIMARY KEY (`eventid`), - KEY `starttime` (`starttime`), - KEY `channel_id` (`channel_id`) -) TYPE=MyISAM; - --- --- Table structure for table `RECORDS` --- - -DROP TABLE IF EXISTS `RECORDS`; -CREATE TABLE `RECORDS` ( - `eventid` bigint(20) unsigned NOT NULL, - `RecordId` int(11) unsigned NOT NULL, - `RecordMD5` varchar(32) NOT NULL, - `Path` text NOT NULL, - `Prio` tinyint(4) NOT NULL, - `Lifetime` tinyint(4) NOT NULL, - `State` tinyint(4) NOT NULL, - `FileSize` int(11) unsigned default '0', - `Marks` text, - `Type` enum('TV','RADIO','UNKNOWN') default 'TV', - `addtime` timestamp NOT NULL, - PRIMARY KEY (`eventid`), - UNIQUE KEY `eventid` (`eventid`) -) TYPE=MyISAM; - --- --- Table structure for table `TIMERS` --- - -DROP TABLE IF EXISTS `TIMERS`; -CREATE TABLE `TIMERS` ( - `Id` int(11) unsigned NOT NULL, - `Status` char(1) default '1', - `ChannelID` varchar(100) NOT NULL default '', - `Day` varchar(20) default '-------', - `Start` int(11) unsigned default NULL, - `Stop` int(11) unsigned default NULL, - `Priority` tinyint(2) default NULL, - `Lifetime` tinyint(2) default NULL, - `File` text, - `Summary` text, - `NextStartTime` datetime default NULL, - `NextStopTime` datetime default NULL, - `Collision` varchar(100) default '0', - `eventid` bigint(20) unsigned default '0', - `eventstarttime` datetime default NULL, - `eventduration` int(10) unsigned default '0', - `AutotimerId` int(11) unsigned default '0', - `addtime` timestamp NOT NULL, - `Checked` char(1) default '0', - PRIMARY KEY (`Id`) -) TYPE=MyISAM; +); -- -- Table structure for table `USER` @@ -293,13 +142,12 @@ CREATE TABLE `USER` ( `MaxLifeTime` tinyint(2) default '0', `MaxPriority` tinyint(2) default '0', PRIMARY KEY (`Id`) -) TYPE=MyISAM; +); +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; --- --- Table structure for table `VERSION` --- +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; -DROP TABLE IF EXISTS `VERSION`; -CREATE TABLE `VERSION` ( - `Version` tinyint(4) NOT NULL default '0' -) TYPE=MyISAM; +-- Dump completed on 2007-11-17 17:21:22 diff --git a/doc/CHANGELOG.txt b/doc/CHANGELOG index 79c237e..79c237e 100644 --- a/doc/CHANGELOG.txt +++ b/doc/CHANGELOG diff --git a/doc/COPYING.txt b/doc/COPYING index 223ede7..223ede7 100644 --- a/doc/COPYING.txt +++ b/doc/COPYING diff --git a/doc/LIESMICH.txt b/doc/LIESMICH index 9ec1c05..9ec1c05 100644 --- a/doc/LIESMICH.txt +++ b/doc/LIESMICH diff --git a/doc/README.txt b/doc/README index 1effd4a..1effd4a 100644 --- a/doc/README.txt +++ b/doc/README diff --git a/doc/TODO.txt b/doc/TODO.txt deleted file mode 100644 index 9698947..0000000 --- a/doc/TODO.txt +++ /dev/null @@ -1,6 +0,0 @@ -Featurerequest (ToDo DevVersion >= 1.0): - -* Zeitintensive Aufgaben sollten vorher den sysload prüfen (blafasel) -* Echtes Telnetinterface mit history usw. (xpix) - - @@ -198,7 +198,7 @@ doInstall() makeDir "$LIBDIR" 1 && cp -r lib/* "$LIBDIR" || exit 1 makeDir "$SHAREDIR" 1 && cp -r share/* "$SHAREDIR" || exit 1 - makeDir "$DOCDIR" 1 && cp doc/CHANGELOG.txt doc/COPYING.txt doc/docu.tmpl doc/LIESMICH.txt doc/NEWS.txt doc/README.txt doc/TODO.txt doc/TUTORIAL.txt.gz "$DOCDIR" || exit 1 + makeDir "$DOCDIR" 1 && cp INSTALL doc/COPYING doc/CHANGELOG doc/docu.tmpl doc/LIESMICH doc/NEWS doc/README doc/TUTORIAL.txt.gz "$DOCDIR" || exit 1 makeDir "$CONTRIBDIR" 1 && cp -r contrib/* "$CONTRIBDIR" || exit 1 makeDir "$SKINDIR" 1 && cp -r html wml "$SKINDIR" || exit 1 (cd "$SKINDIR";ln -s html default) || exit 1 diff --git a/lib/XXV/OUTPUT/Console.pm b/lib/XXV/OUTPUT/Console.pm index dca6ee5..4358b88 100644 --- a/lib/XXV/OUTPUT/Console.pm +++ b/lib/XXV/OUTPUT/Console.pm @@ -628,7 +628,7 @@ sub pod { $modname = ucfirst($modname) if($modname eq 'GENERAL'); my $podfile = sprintf('%s/%s.pod', $obj->{paths}->{PODPATH}, $modname); - return $obj->err(gettext('Module %s not found!'), $modname) + return $obj->err(sprintf(gettext('Module %s not found!'), $modname)) unless(-r $podfile); my $tmpdir = main::getModule('USER')->userTmp; my $outfile = sprintf('%s/%s_%d.pod', $tmpdir, $modname, time); @@ -654,14 +654,24 @@ sub txtfile { my $filename = shift || return error('No file defined!'); my $param = shift || {}; - my $txtfile = sprintf('%s/%s.txt', $obj->{paths}->{DOCPATH}, $filename); - my $gzfile = sprintf('%s/%s.txt.gz', $obj->{paths}->{DOCPATH}, $filename); - - $txtfile = main::getModule('HTTPD')->unzip($gzfile) - if(! -r $txtfile and -e $gzfile and -r $gzfile); - + my $txtfile = sprintf('%s/%s', $obj->{paths}->{DOCPATH}, $filename); + if(! -r $txtfile) { + $txtfile = sprintf('%s/%s.txt', $obj->{paths}->{DOCPATH}, $filename); + if(! -r $txtfile) { + my $gzfile = sprintf('%s/%s.gz', $obj->{paths}->{DOCPATH}, $filename); + if(! -r $gzfile) { + $gzfile = sprintf('%s/%s.txt.gz', $obj->{paths}->{DOCPATH}, $filename); + if(! -r $gzfile) { + my $e = $!; + error sprintf("Could not open file '%s/%s[.txt .gz txt.gz]! : %s", $obj->{paths}->{DOCPATH}, $filename, $e); + return $obj->err(sprintf(gettext("Could not open file '%s'! : %s"), $filename, $e)); + } + } + $txtfile = main::getModule('HTTPD')->unzip($gzfile); + } + } my $txt = load_file($txtfile); - return $obj->message($txt, {tags => {first => "File: $filename.txt"}}); + return $obj->message($txt, {tags => {first => "File: $filename"}}); } # ------------------ diff --git a/lib/XXV/OUTPUT/Html.pm b/lib/XXV/OUTPUT/Html.pm index 32b946c..e2bce79 100644 --- a/lib/XXV/OUTPUT/Html.pm +++ b/lib/XXV/OUTPUT/Html.pm @@ -752,17 +752,28 @@ sub txtfile { my $filename = shift || return error ('No file defined!'); my $param = shift || {}; - my $txtfile = sprintf('%s/%s.txt', $obj->{paths}->{DOCPATH}, $filename); - my $gzfile = sprintf('%s/%s.txt.gz', $obj->{paths}->{DOCPATH}, $filename); - - $txtfile = main::getModule('HTTPD')->unzip($gzfile) - if(! -r $txtfile and -r $gzfile); + my $txtfile = sprintf('%s/%s', $obj->{paths}->{DOCPATH}, $filename); + if(! -r $txtfile) { + $txtfile = sprintf('%s/%s.txt', $obj->{paths}->{DOCPATH}, $filename); + if(! -r $txtfile) { + my $gzfile = sprintf('%s/%s.gz', $obj->{paths}->{DOCPATH}, $filename); + if(! -r $gzfile) { + $gzfile = sprintf('%s/%s.txt.gz', $obj->{paths}->{DOCPATH}, $filename); + if(! -r $gzfile) { + my $e = $!; + error sprintf("Could not open file '%s/%s[.txt .gz txt.gz]! : %s", $obj->{paths}->{DOCPATH}, $filename, $e); + return $obj->err(sprintf(gettext("Could not open file '%s'! : %s"), $filename, $e)); + } + } + $txtfile = main::getModule('HTTPD')->unzip($gzfile); + } + } my $topic = gettext("File"); if($param->{'format'} eq 'txt') { my $txt = load_file($txtfile); - return $obj->message($txt, {tags => {first => "$topic: $filename.txt"}}); + return $obj->message($txt, {tags => {first => "$topic: $filename"}}); } my $u = main::getModule('USER'); @@ -776,7 +787,7 @@ sub txtfile { ); my $html = load_file($htmlfile); $html = $1 if($html =~ /\<body.*?\>(.+?)\<\/body\>/si); - $obj->message($html, {tags => {first => "<h1>$topic: $filename.txt</h1>"}}); + $obj->message($html, {tags => {first => "<h1>$topic: $filename</h1>"}}); } # ------------------ |
