Imported Upstream version 2.6.0
This commit is contained in:
parent
26fb71b504
commit
459aaf9392
510 changed files with 40508 additions and 18859 deletions
126
docs/website/Makefile.am
Normal file
126
docs/website/Makefile.am
Normal file
|
@ -0,0 +1,126 @@
|
|||
# FIXME: do we really have to distribute these many Kb too?
|
||||
# RCS should be enough, and website generation should use
|
||||
# source from subversion tags!
|
||||
EXTRA_DIST = news.txt projects.txt website.txt \
|
||||
ups-protocols.txt $(LAYOUT).conf $(SCRIPT_FILES) $(LAYOUT_FILES) \
|
||||
$(FAVICON_FILES)
|
||||
|
||||
IMAGE_FILES = images/asciidoc.png \
|
||||
images/eaton-logo.png \
|
||||
images/blue-arrow.png \
|
||||
images/simple.png \
|
||||
images/advanced.png \
|
||||
images/bigbox.png \
|
||||
images/bizarre.png \
|
||||
images/note.png \
|
||||
images/warning.png
|
||||
|
||||
FAVICON_FILES = faviconut.ico faviconut.png
|
||||
|
||||
LAYOUT_FILES = css/ie-overrides.css \
|
||||
css/web-layout.css \
|
||||
css/xhtml11-quirks.css \
|
||||
css/xhtml11.css
|
||||
|
||||
SCRIPT_FILES = scripts/filter_png.js \
|
||||
scripts/jquery.js \
|
||||
scripts/nut_jquery.js \
|
||||
scripts/toc.js
|
||||
|
||||
WEBSITE_FILES = index.html projects.html stable-hcl.html \
|
||||
documentation.html acknowledgements.html features.html \
|
||||
ups-protocols.html \
|
||||
cables.html nut-qa.html download.html support.html
|
||||
|
||||
WEBSITE_DEPS = ../user-manual.chunked ../packager-guide.chunked \
|
||||
../FAQ.html ../developer-guide.chunked \
|
||||
../user-manual.pdf \
|
||||
../developer-guide.pdf \
|
||||
../packager-guide.pdf \
|
||||
../FAQ.pdf ../man/man-index.html
|
||||
|
||||
# CSS based simulated frames layout.
|
||||
LAYOUT = web-layout
|
||||
|
||||
# Add --unsafe to allow includes on older versions of asciidoc ( < 8.5.3 ):
|
||||
ASCIIDOC_PARAMS = --unsafe --backend=xhtml11 \
|
||||
--conf-file=$(srcdir)/$(LAYOUT).conf \
|
||||
--attribute icons \
|
||||
--attribute iconsdir=$(srcdir)/images \
|
||||
--attribute scriptsdir=$(srcdir)/scripts \
|
||||
--attribute=badges \
|
||||
--attribute=website \
|
||||
--attribute=revision=$(PACKAGE_VERSION) \
|
||||
--attribute localdate=`TZ=UTC date +%Y-%m-%d` \
|
||||
--attribute localtime=`TZ=UTC date +%H:%M:%S` \
|
||||
--attribute=date="`TZ=UTC date`"
|
||||
|
||||
all:
|
||||
|
||||
OUTDIR = output
|
||||
$(WEBSITE_FILES): $(LAYOUT).conf
|
||||
|
||||
images/:
|
||||
$(MKDIR_P) images
|
||||
|
||||
$(IMAGE_FILES): images/
|
||||
cp -f ../$@ images/
|
||||
|
||||
|
||||
if HAVE_ASCIIDOC
|
||||
website: $(WEBSITE_FILES) $(WEBSITE_DEPS) $(IMAGE_FILES) $(SCRIPT_FILES) \
|
||||
$(LAYOUT_FILES) scripts/ups_data.js ../stable-hcl.txt ../ups-html.txt \
|
||||
$(OUTDIR) $(FAVICON_FILES)
|
||||
|
||||
else !HAVE_ASCIIDOC
|
||||
website:
|
||||
@echo "Not building website since 'asciidoc' was not found."
|
||||
endif !HAVE_ASCIIDOC
|
||||
|
||||
.PHONY: website $(OUTDIR)
|
||||
|
||||
$(OUTDIR):
|
||||
$(RM) -r $(OUTDIR)
|
||||
$(MKDIR_P) $(OUTDIR)/docs/man
|
||||
cp -fR $(WEBSITE_FILES) css images scripts $(OUTDIR)
|
||||
cp -fR $(WEBSITE_DEPS) $(OUTDIR)/docs/
|
||||
cp -f ../man/man-index.html $(OUTDIR)/docs/man/
|
||||
cp -f ../man/*.html $(OUTDIR)/docs/man/
|
||||
|
||||
clean-local:
|
||||
rm -rf $(WEBSITE_FILES) $(OUTDIR) images/
|
||||
|
||||
SUFFIXES = .txt .html
|
||||
|
||||
index.html: website.txt news.txt
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ -a index-only $<
|
||||
|
||||
acknowledgements.html: ../acknowledgements.txt
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ $<
|
||||
|
||||
features.html: ../features.txt
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ $<
|
||||
|
||||
cables.html: ../cables.txt
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ -a toc $<
|
||||
|
||||
download.html: ../download.txt
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ -a toc $<
|
||||
|
||||
documentation.html: ../documentation.txt
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ $<
|
||||
|
||||
projects.html: projects.txt
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ -a toc $<
|
||||
|
||||
support.html: ../support.txt
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ $<
|
||||
|
||||
nut-qa.html: ../nut-qa.txt
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ $<
|
||||
|
||||
stable-hcl.html: ../stable-hcl.txt
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ -a hcl $<
|
||||
|
||||
.txt.html:
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ $<
|
538
docs/website/Makefile.in
Normal file
538
docs/website/Makefile.in
Normal file
|
@ -0,0 +1,538 @@
|
|||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
subdir = docs/website
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compare_version.m4 \
|
||||
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
|
||||
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
|
||||
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
|
||||
$(top_srcdir)/m4/lt~obsolete.m4 \
|
||||
$(top_srcdir)/m4/nut_arg_with.m4 \
|
||||
$(top_srcdir)/m4/nut_check_asciidoc.m4 \
|
||||
$(top_srcdir)/m4/nut_check_libgd.m4 \
|
||||
$(top_srcdir)/m4/nut_check_libhal.m4 \
|
||||
$(top_srcdir)/m4/nut_check_libneon.m4 \
|
||||
$(top_srcdir)/m4/nut_check_libnetsnmp.m4 \
|
||||
$(top_srcdir)/m4/nut_check_libpowerman.m4 \
|
||||
$(top_srcdir)/m4/nut_check_libssl.m4 \
|
||||
$(top_srcdir)/m4/nut_check_libusb.m4 \
|
||||
$(top_srcdir)/m4/nut_check_libwrap.m4 \
|
||||
$(top_srcdir)/m4/nut_check_os.m4 \
|
||||
$(top_srcdir)/m4/nut_config_libhal.m4 \
|
||||
$(top_srcdir)/m4/nut_report_feature.m4 \
|
||||
$(top_srcdir)/m4/nut_type_socklen_t.m4 \
|
||||
$(top_srcdir)/configure.in
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/include/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
A2X = @A2X@
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
ASCIIDOC = @ASCIIDOC@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BINDIR = @BINDIR@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CONFPATH = @CONFPATH@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DBLATEX = @DBLATEX@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DOC_BUILD_LIST = @DOC_BUILD_LIST@
|
||||
DRIVER_BUILD_LIST = @DRIVER_BUILD_LIST@
|
||||
DRIVER_INSTALL_TARGET = @DRIVER_INSTALL_TARGET@
|
||||
DRIVER_MAN_LIST = @DRIVER_MAN_LIST@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
HAL_CALLOUTS_PATH = @HAL_CALLOUTS_PATH@
|
||||
HAL_DEVICE_MATCH_KEY = @HAL_DEVICE_MATCH_KEY@
|
||||
HAL_FDI_PATH = @HAL_FDI_PATH@
|
||||
HAL_USER = @HAL_USER@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBGD_CFLAGS = @LIBGD_CFLAGS@
|
||||
LIBGD_LDFLAGS = @LIBGD_LDFLAGS@
|
||||
LIBHAL_CFLAGS = @LIBHAL_CFLAGS@
|
||||
LIBHAL_LIBS = @LIBHAL_LIBS@
|
||||
LIBNEON_CFLAGS = @LIBNEON_CFLAGS@
|
||||
LIBNEON_LIBS = @LIBNEON_LIBS@
|
||||
LIBNETSNMP_CFLAGS = @LIBNETSNMP_CFLAGS@
|
||||
LIBNETSNMP_LIBS = @LIBNETSNMP_LIBS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBPOWERMAN_CFLAGS = @LIBPOWERMAN_CFLAGS@
|
||||
LIBPOWERMAN_LIBS = @LIBPOWERMAN_LIBS@
|
||||
LIBS = @LIBS@
|
||||
LIBSSL_CFLAGS = @LIBSSL_CFLAGS@
|
||||
LIBSSL_LIBS = @LIBSSL_LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
|
||||
LIBUSB_LIBS = @LIBUSB_LIBS@
|
||||
LIBWRAP_CFLAGS = @LIBWRAP_CFLAGS@
|
||||
LIBWRAP_LIBS = @LIBWRAP_LIBS@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NETLIBS = @NETLIBS@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OS_NAME = @OS_NAME@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
RANLIB = @RANLIB@
|
||||
RUN_AS_GROUP = @RUN_AS_GROUP@
|
||||
RUN_AS_USER = @RUN_AS_USER@
|
||||
SED = @SED@
|
||||
SERLIBS = @SERLIBS@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STATEPATH = @STATEPATH@
|
||||
STRIP = @STRIP@
|
||||
SUN_LIBUSB = @SUN_LIBUSB@
|
||||
VERSION = @VERSION@
|
||||
WORDS_BIGENDIAN = @WORDS_BIGENDIAN@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
cgiexecdir = @cgiexecdir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
driverexecdir = @driverexecdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
hotplugdir = @hotplugdir@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
lt_ECHO = @lt_ECHO@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
pkgconfigdir = @pkgconfigdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target = @target@
|
||||
target_alias = @target_alias@
|
||||
target_cpu = @target_cpu@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
udevdir = @udevdir@
|
||||
|
||||
# FIXME: do we really have to distribute these many Kb too?
|
||||
# RCS should be enough, and website generation should use
|
||||
# source from subversion tags!
|
||||
EXTRA_DIST = news.txt projects.txt website.txt \
|
||||
ups-protocols.txt $(LAYOUT).conf $(SCRIPT_FILES) $(LAYOUT_FILES) \
|
||||
$(FAVICON_FILES)
|
||||
|
||||
IMAGE_FILES = images/asciidoc.png \
|
||||
images/eaton-logo.png \
|
||||
images/blue-arrow.png \
|
||||
images/simple.png \
|
||||
images/advanced.png \
|
||||
images/bigbox.png \
|
||||
images/bizarre.png \
|
||||
images/note.png \
|
||||
images/warning.png
|
||||
|
||||
FAVICON_FILES = faviconut.ico faviconut.png
|
||||
LAYOUT_FILES = css/ie-overrides.css \
|
||||
css/web-layout.css \
|
||||
css/xhtml11-quirks.css \
|
||||
css/xhtml11.css
|
||||
|
||||
SCRIPT_FILES = scripts/filter_png.js \
|
||||
scripts/jquery.js \
|
||||
scripts/nut_jquery.js \
|
||||
scripts/toc.js
|
||||
|
||||
WEBSITE_FILES = index.html projects.html stable-hcl.html \
|
||||
documentation.html acknowledgements.html features.html \
|
||||
ups-protocols.html \
|
||||
cables.html nut-qa.html download.html support.html
|
||||
|
||||
WEBSITE_DEPS = ../user-manual.chunked ../packager-guide.chunked \
|
||||
../FAQ.html ../developer-guide.chunked \
|
||||
../user-manual.pdf \
|
||||
../developer-guide.pdf \
|
||||
../packager-guide.pdf \
|
||||
../FAQ.pdf ../man/man-index.html
|
||||
|
||||
|
||||
# CSS based simulated frames layout.
|
||||
LAYOUT = web-layout
|
||||
|
||||
# Add --unsafe to allow includes on older versions of asciidoc ( < 8.5.3 ):
|
||||
ASCIIDOC_PARAMS = --unsafe --backend=xhtml11 \
|
||||
--conf-file=$(srcdir)/$(LAYOUT).conf \
|
||||
--attribute icons \
|
||||
--attribute iconsdir=$(srcdir)/images \
|
||||
--attribute scriptsdir=$(srcdir)/scripts \
|
||||
--attribute=badges \
|
||||
--attribute=website \
|
||||
--attribute=revision=$(PACKAGE_VERSION) \
|
||||
--attribute localdate=`TZ=UTC date +%Y-%m-%d` \
|
||||
--attribute localtime=`TZ=UTC date +%H:%M:%S` \
|
||||
--attribute=date="`TZ=UTC date`"
|
||||
|
||||
OUTDIR = output
|
||||
SUFFIXES = .txt .html
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .txt .html
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/website/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu docs/website/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile
|
||||
installdirs:
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool clean-local mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
|
||||
clean-local distclean distclean-generic distclean-libtool \
|
||||
distdir dvi dvi-am html html-am info info-am install \
|
||||
install-am install-data install-data-am install-dvi \
|
||||
install-dvi-am install-exec install-exec-am install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
uninstall uninstall-am
|
||||
|
||||
|
||||
all:
|
||||
$(WEBSITE_FILES): $(LAYOUT).conf
|
||||
|
||||
images/:
|
||||
$(MKDIR_P) images
|
||||
|
||||
$(IMAGE_FILES): images/
|
||||
cp -f ../$@ images/
|
||||
|
||||
@HAVE_ASCIIDOC_TRUE@website: $(WEBSITE_FILES) $(WEBSITE_DEPS) $(IMAGE_FILES) $(SCRIPT_FILES) \
|
||||
@HAVE_ASCIIDOC_TRUE@ $(LAYOUT_FILES) scripts/ups_data.js ../stable-hcl.txt ../ups-html.txt \
|
||||
@HAVE_ASCIIDOC_TRUE@ $(OUTDIR) $(FAVICON_FILES)
|
||||
|
||||
@HAVE_ASCIIDOC_FALSE@website:
|
||||
@HAVE_ASCIIDOC_FALSE@ @echo "Not building website since 'asciidoc' was not found."
|
||||
|
||||
.PHONY: website $(OUTDIR)
|
||||
|
||||
$(OUTDIR):
|
||||
$(RM) -r $(OUTDIR)
|
||||
$(MKDIR_P) $(OUTDIR)/docs/man
|
||||
cp -fR $(WEBSITE_FILES) css images scripts $(OUTDIR)
|
||||
cp -fR $(WEBSITE_DEPS) $(OUTDIR)/docs/
|
||||
cp -f ../man/man-index.html $(OUTDIR)/docs/man/
|
||||
cp -f ../man/*.html $(OUTDIR)/docs/man/
|
||||
|
||||
clean-local:
|
||||
rm -rf $(WEBSITE_FILES) $(OUTDIR) images/
|
||||
|
||||
index.html: website.txt news.txt
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ -a index-only $<
|
||||
|
||||
acknowledgements.html: ../acknowledgements.txt
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ $<
|
||||
|
||||
features.html: ../features.txt
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ $<
|
||||
|
||||
cables.html: ../cables.txt
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ -a toc $<
|
||||
|
||||
download.html: ../download.txt
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ -a toc $<
|
||||
|
||||
documentation.html: ../documentation.txt
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ $<
|
||||
|
||||
projects.html: projects.txt
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ -a toc $<
|
||||
|
||||
support.html: ../support.txt
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ $<
|
||||
|
||||
nut-qa.html: ../nut-qa.txt
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ $<
|
||||
|
||||
stable-hcl.html: ../stable-hcl.txt
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ -a hcl $<
|
||||
|
||||
.txt.html:
|
||||
$(ASCIIDOC) $(ASCIIDOC_PARAMS) -o $@ $<
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
7
docs/website/css/ie-overrides.css
Normal file
7
docs/website/css/ie-overrides.css
Normal file
|
@ -0,0 +1,7 @@
|
|||
#layout-content-box {
|
||||
margin-left: 207px;
|
||||
}
|
||||
|
||||
#support-level-legend { width: 400px; }
|
||||
#support-level-legend ul { margin: 0; }
|
||||
.support-level-descr { float: none; }
|
136
docs/website/css/web-layout.css
Normal file
136
docs/website/css/web-layout.css
Normal file
|
@ -0,0 +1,136 @@
|
|||
body {
|
||||
margin: 0;
|
||||
font-size: 0.9em;
|
||||
background-color: #f4f4f4;
|
||||
}
|
||||
|
||||
#layout-banner-box {
|
||||
width: 100%;
|
||||
height: 110px;
|
||||
z-index: 2;
|
||||
background-color: #0067cd;
|
||||
}
|
||||
|
||||
#layout-menu-box {
|
||||
float: left;
|
||||
height: 100%;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
#layout-content-box {
|
||||
border-left: 3px solid #eeeeee;
|
||||
background-color: white;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
|
||||
#layout-banner {
|
||||
color: white;
|
||||
font-family: sans-serif;
|
||||
text-align: left;
|
||||
padding: 0.8em 20px;
|
||||
}
|
||||
|
||||
#layout-title {
|
||||
font-family: monospace;
|
||||
font-size: 3.5em;
|
||||
font-weight: bold;
|
||||
letter-spacing: 0.2em;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#layout-description {
|
||||
font-size: 1.2em;
|
||||
letter-spacing: 0.1em;
|
||||
}
|
||||
|
||||
#sponsor {
|
||||
clear: both;
|
||||
font-size: small;
|
||||
margin-top: 50px;
|
||||
margin-bottom: 10px;
|
||||
color:#0067CD;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
#sponsor span { margin-left: 10px; }
|
||||
#sponsor img { border: 0; }
|
||||
|
||||
#layout-menu {
|
||||
padding-top: 0.8em;
|
||||
padding-left: 20px;
|
||||
margin-left: 0;
|
||||
font-size: 1.0em;
|
||||
font-family: sans-serif;
|
||||
font-weight: bold;
|
||||
list-style: none;
|
||||
list-style-image: url(../images/blue-arrow.png)
|
||||
}
|
||||
#layout-menu li { margin-left: 10px; }
|
||||
#layout-menu a {
|
||||
line-height: 2em;
|
||||
margin-left: 0.5em;
|
||||
}
|
||||
#layout-menu a:link, #layout-menu a:visited, #layout-menu a:hover {
|
||||
color: #0067cd;
|
||||
text-decoration: none;
|
||||
}
|
||||
#layout-menu a:hover {
|
||||
color: navy;
|
||||
text-decoration: none;
|
||||
}
|
||||
#layout-menu #page-source {
|
||||
border-top: 2px solid silver;
|
||||
margin-top: 0.2em;
|
||||
}
|
||||
|
||||
#layout-content {
|
||||
padding-top: 0.2em;
|
||||
padding-left: 1.0em;
|
||||
padding-right: 0.4em;
|
||||
}
|
||||
|
||||
@media print {
|
||||
#layout-banner-box { display: none; }
|
||||
#layout-menu-box { display: none; }
|
||||
#layout-content-box { margin-top: 0; margin-left: 0; }
|
||||
}
|
||||
|
||||
|
||||
#ups_list
|
||||
{
|
||||
margin: 20px 0 0 0; width: 100%;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
#ups_list td { border: 1px solid silver; }
|
||||
#ups_list thead { font-weight: bold; background: #bbb; }
|
||||
#ups_list .odd { background: #eee; }
|
||||
#ups_list .even { background: #ddd; }
|
||||
.filter { min-width: 100px; }
|
||||
|
||||
td#manufacturer-col { width: 20%; }
|
||||
td#model-col { width: 50%; }
|
||||
td#driver-col { width: 30%; }
|
||||
|
||||
.blue { background-color: #cfd9fe; }
|
||||
.green { background-color: #b1fea7; }
|
||||
.yellow { background-color: #fdf88e; }
|
||||
.orange { background-color: #fccb81; }
|
||||
.red { background-color: #ffa4a4; }
|
||||
|
||||
.hidden { display: none; }
|
||||
|
||||
#filters-set, #filters-set fieldset { display: none; border: 1px solid silver; padding: 10px; }
|
||||
#filters-set legend { font-weight: bold; }
|
||||
#filters-set td { border: 0; }
|
||||
#filters-set fieldset { display: block; }
|
||||
#filters-set select { max-width: 200px }
|
||||
|
||||
#support-level-legend { width: 31.25em; float: right; margin-right: 10px; padding: 10px; }
|
||||
#support-level-legend dt { margin: 0; padding: 0; width: 15%; float: left; }
|
||||
#support-level-legend dd { margin: 0; padding: 0; width: 85%; float: left; }
|
||||
|
||||
/*.support-level-descr { margin-left: 20px; float: right; }*/
|
41
docs/website/css/xhtml11-quirks.css
Normal file
41
docs/website/css/xhtml11-quirks.css
Normal file
|
@ -0,0 +1,41 @@
|
|||
/* Workarounds for IE6's broken and incomplete CSS2. */
|
||||
|
||||
div.sidebar-content {
|
||||
background: #ffffee;
|
||||
border: 1px solid silver;
|
||||
padding: 0.5em;
|
||||
}
|
||||
div.sidebar-title, div.image-title {
|
||||
color: #527bbd;
|
||||
font-family: sans-serif;
|
||||
font-weight: bold;
|
||||
margin-top: 0.0em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
div.listingblock div.content {
|
||||
border: 1px solid silver;
|
||||
background: #f4f4f4;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
div.quoteblock-attribution {
|
||||
padding-top: 0.5em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
div.verseblock-content {
|
||||
white-space: pre;
|
||||
}
|
||||
div.verseblock-attribution {
|
||||
padding-top: 0.75em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
div.exampleblock-content {
|
||||
border-left: 2px solid silver;
|
||||
padding-left: 0.5em;
|
||||
}
|
||||
|
||||
/* IE6 sets dynamically generated links as visited. */
|
||||
div#toc a:visited { color: blue; }
|
333
docs/website/css/xhtml11.css
Normal file
333
docs/website/css/xhtml11.css
Normal file
|
@ -0,0 +1,333 @@
|
|||
/* Debug borders */
|
||||
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
|
||||
/*
|
||||
border: 1px solid red;
|
||||
*/
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 1em 5% 1em 5%;
|
||||
}
|
||||
|
||||
a {
|
||||
color: blue;
|
||||
text-decoration: underline;
|
||||
}
|
||||
a:visited {
|
||||
color: fuchsia;
|
||||
}
|
||||
|
||||
em {
|
||||
font-style: italic;
|
||||
color: navy;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: bold;
|
||||
color: #083194;
|
||||
}
|
||||
|
||||
tt {
|
||||
color: navy;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
color: #527bbd;
|
||||
font-family: sans-serif;
|
||||
margin-top: 1.2em;
|
||||
margin-bottom: 0.5em;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
h1, h2, h3 {
|
||||
border-bottom: 2px solid silver;
|
||||
}
|
||||
h2 {
|
||||
padding-top: 0.5em;
|
||||
}
|
||||
h3 {
|
||||
float: left;
|
||||
}
|
||||
h3 + * {
|
||||
clear: left;
|
||||
}
|
||||
|
||||
div.sectionbody {
|
||||
font-family: serif;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: 1px solid silver;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
ul, ol, li > p {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
pre {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
span#author {
|
||||
color: #527bbd;
|
||||
font-family: sans-serif;
|
||||
font-weight: bold;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
span#email {
|
||||
}
|
||||
span#revnumber, span#revdate, span#revremark {
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
div#footer {
|
||||
font-family: sans-serif;
|
||||
font-size: small;
|
||||
border-top: 2px solid silver;
|
||||
padding-top: 0.5em;
|
||||
margin-top: 4.0em;
|
||||
}
|
||||
div#footer-text {
|
||||
float: left;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
div#footer-badges {
|
||||
float: right;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
|
||||
div#preamble {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 1.5em;
|
||||
}
|
||||
div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
|
||||
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
|
||||
div.admonitionblock {
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 1.5em;
|
||||
}
|
||||
div.admonitionblock {
|
||||
margin-top: 2.5em;
|
||||
margin-bottom: 2.5em;
|
||||
}
|
||||
|
||||
div.content { /* Block element content. */
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Block element titles. */
|
||||
div.title, caption.title {
|
||||
color: #527bbd;
|
||||
font-family: sans-serif;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
margin-top: 1.0em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
div.title + * {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
td div.title:first-child {
|
||||
margin-top: 0.0em;
|
||||
}
|
||||
div.content div.title:first-child {
|
||||
margin-top: 0.0em;
|
||||
}
|
||||
div.content + div.title {
|
||||
margin-top: 0.0em;
|
||||
}
|
||||
|
||||
div.sidebarblock > div.content {
|
||||
background: #ffffee;
|
||||
border: 1px solid silver;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
div.listingblock > div.content {
|
||||
border: 1px solid silver;
|
||||
background: #f4f4f4;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
div.quoteblock {
|
||||
padding-left: 2.0em;
|
||||
margin-right: 10%;
|
||||
}
|
||||
div.quoteblock > div.attribution {
|
||||
padding-top: 0.5em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
div.verseblock {
|
||||
padding-left: 2.0em;
|
||||
margin-right: 10%;
|
||||
}
|
||||
div.verseblock > div.content {
|
||||
white-space: pre;
|
||||
}
|
||||
div.verseblock > div.attribution {
|
||||
padding-top: 0.75em;
|
||||
text-align: left;
|
||||
}
|
||||
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
|
||||
div.verseblock + div.attribution {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
div.admonitionblock .icon {
|
||||
vertical-align: top;
|
||||
font-size: 1.1em;
|
||||
font-weight: bold;
|
||||
text-decoration: underline;
|
||||
color: #527bbd;
|
||||
padding-right: 0.5em;
|
||||
}
|
||||
div.admonitionblock td.content {
|
||||
padding-left: 0.5em;
|
||||
border-left: 2px solid silver;
|
||||
}
|
||||
|
||||
div.exampleblock > div.content {
|
||||
border-left: 2px solid silver;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
div.imageblock div.content { padding-left: 0; }
|
||||
span.image img { border-style: none; }
|
||||
a.image:visited { color: white; }
|
||||
|
||||
dl {
|
||||
margin-top: 0.8em;
|
||||
margin-bottom: 0.8em;
|
||||
}
|
||||
dt {
|
||||
margin-top: 0.5em;
|
||||
margin-bottom: 0;
|
||||
font-style: normal;
|
||||
color: navy;
|
||||
}
|
||||
dd > *:first-child {
|
||||
margin-top: 0.1em;
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
list-style-position: outside;
|
||||
}
|
||||
ol.arabic {
|
||||
list-style-type: decimal;
|
||||
}
|
||||
ol.loweralpha {
|
||||
list-style-type: lower-alpha;
|
||||
}
|
||||
ol.upperalpha {
|
||||
list-style-type: upper-alpha;
|
||||
}
|
||||
ol.lowerroman {
|
||||
list-style-type: lower-roman;
|
||||
}
|
||||
ol.upperroman {
|
||||
list-style-type: upper-roman;
|
||||
}
|
||||
|
||||
div.compact ul, div.compact ol,
|
||||
div.compact p, div.compact p,
|
||||
div.compact div, div.compact div {
|
||||
margin-top: 0.1em;
|
||||
margin-bottom: 0.1em;
|
||||
}
|
||||
|
||||
div.tableblock > table {
|
||||
border: 3px solid #527bbd;
|
||||
}
|
||||
thead {
|
||||
font-family: sans-serif;
|
||||
font-weight: bold;
|
||||
}
|
||||
tfoot {
|
||||
font-weight: bold;
|
||||
}
|
||||
td > div.verse {
|
||||
white-space: pre;
|
||||
}
|
||||
p.table {
|
||||
margin-top: 0;
|
||||
}
|
||||
/* Because the table frame attribute is overriden by CSS in most browsers. */
|
||||
div.tableblock > table[frame="void"] {
|
||||
border-style: none;
|
||||
}
|
||||
div.tableblock > table[frame="hsides"] {
|
||||
border-left-style: none;
|
||||
border-right-style: none;
|
||||
}
|
||||
div.tableblock > table[frame="vsides"] {
|
||||
border-top-style: none;
|
||||
border-bottom-style: none;
|
||||
}
|
||||
|
||||
|
||||
div.hdlist {
|
||||
margin-top: 0.8em;
|
||||
margin-bottom: 0.8em;
|
||||
}
|
||||
div.hdlist tr {
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
dt.hdlist1.strong, td.hdlist1.strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
td.hdlist1 {
|
||||
vertical-align: top;
|
||||
font-style: normal;
|
||||
padding-right: 0.8em;
|
||||
color: navy;
|
||||
}
|
||||
td.hdlist2 {
|
||||
vertical-align: top;
|
||||
}
|
||||
div.hdlist.compact tr {
|
||||
margin: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.comment {
|
||||
background: yellow;
|
||||
}
|
||||
|
||||
@media print {
|
||||
div#footer-badges { display: none; }
|
||||
}
|
||||
|
||||
div#toctitle {
|
||||
color: #527bbd;
|
||||
font-family: sans-serif;
|
||||
font-size: 1.1em;
|
||||
font-weight: bold;
|
||||
margin-top: 1.0em;
|
||||
margin-bottom: 0.1em;
|
||||
}
|
||||
|
||||
div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
div.toclevel2 {
|
||||
margin-left: 2em;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
div.toclevel3 {
|
||||
margin-left: 4em;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
div.toclevel4 {
|
||||
margin-left: 6em;
|
||||
font-size: 0.9em;
|
||||
}
|
BIN
docs/website/faviconut.ico
Normal file
BIN
docs/website/faviconut.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
BIN
docs/website/faviconut.png
Normal file
BIN
docs/website/faviconut.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 814 B |
9
docs/website/news.txt
Normal file
9
docs/website/news.txt
Normal file
|
@ -0,0 +1,9 @@
|
|||
- January 14, 2011: 2.6.0 released
|
||||
- December 24, 2010: 2.6.0-pre1 released
|
||||
- December 16, 2010: link:http://www.lestat.st/en/informatique/projets/nut-monitor[NUT-Monitor] 1.3 released
|
||||
- July 22, 2010: new client link:http://www.revpol.com/xymon_nut_scripts[Hobbit (Xymon) monitor plugin]
|
||||
- July 2, 2010: link:http://knut.prynych.cz[KNutClient] 1.0.3 and link update
|
||||
- May 12, 2010: link:http://www.lestat.st/informatique/projets/nut-monitor-en[NUT-Monitor] 1.2 released
|
||||
- March 22, 2010: link:http://knut.prynych.cz[KNutClient] 1.0
|
||||
- February 23, 2010: 2.4.3 released
|
||||
- February 19, 2010: 2.4.2 released
|
187
docs/website/projects.txt
Normal file
187
docs/website/projects.txt
Normal file
|
@ -0,0 +1,187 @@
|
|||
Related projects
|
||||
================
|
||||
|
||||
There are many programs and devices that integrate NUT support.
|
||||
|
||||
This page tries to track them.
|
||||
|
||||
Graphical desktop clients
|
||||
-------------------------
|
||||
|
||||
link:http://sourceforge.net/projects/gknut/[GKrellM NUT]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Simple UPS monitoring plugin for GKrellM. Uses NUT (Network UPS Tools) for UPS connection.
|
||||
|
||||
link:http://knut.prynych.cz[KNutClient]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
KNutClient is a visual client for NUT.
|
||||
|
||||
link:http://www.lestat.st/en/informatique/projets/nut-monitor[NUT-Monitor]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
NUT-Monitor is a graphical application to monitor and manage UPSes connected to
|
||||
a NUT server. This application is written in Python and PyGTK, and uses the <<PyNUT,PyNUT>> class.
|
||||
|
||||
NOTE: NUT-Monitor is part of NUT since version NUT 2.4.1.
|
||||
It will further evolve toward the NUT Control Center.
|
||||
|
||||
link:http://download.mgeops.com/explore/eng/ptp/ptp_sol.htm?sol=PSP[Eaton - Personal Solution Pac]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
NUT configuration and monitoring software for Eaton (previously MGE Office Protection Systems) units.
|
||||
|
||||
link:http://www.amautacorp.com/staff/Rudd-O/ups-monitor/[UPS Monitor]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Multi-threaded python/GTK2 graphical monitoring application.
|
||||
|
||||
link:http://sourceforge.net/projects/winnutclient[Windows NUT client]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Windows NUT client is a partial port of KNutClient to Windows using
|
||||
link:http://www.autoitscript.com[AUTOIT] scripting language.
|
||||
|
||||
link:http://csociety.ecn.purdue.edu/~delpha/winnut/[WinNUT]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
WinNUT is a partial port of the client side of Network UPS Tools (NUT) to Windows.
|
||||
|
||||
link:http://wmnut.mgeops.org/[WMNUT]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
WMNut is a program to monitor multiple UPSs statistics through the NUT (Network
|
||||
UPS Tools) framework on Linux and other systems.
|
||||
|
||||
Network Management Systems (NMS) integration
|
||||
--------------------------------------------
|
||||
|
||||
link:http://bigsister.graeff.com/[Big Sister system and network monitor]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The "nut" module monitors uninterruptible power supplies under control of the
|
||||
NUT (Network UPS Tools) free software suite.
|
||||
It sends alerts on power outages, overload and battery problems. The longterm
|
||||
graphing may point you to battery aging problems.
|
||||
|
||||
link:http://cacti.net[Cacti monitoring tool]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
There are three different scripts that add NUT support to Cacti:
|
||||
|
||||
- link:http://forums.cacti.net/about19250.html[PHP script]
|
||||
- link:http://forums.cacti.net/about14475.html[Ruby script]
|
||||
- link:http://forums.cacti.net/about9729.html[shell script]
|
||||
|
||||
link:http://collectd.org[collectd]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The `collectd` system statistics collection daemon features a
|
||||
link:http://collectd.org/wiki/index.php/Plugin:NUT[NUT plugin] to
|
||||
collect statistics from UPSes.
|
||||
|
||||
link:http://xymon.sourceforge.net/[Xymon (Hobbit) monitor]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
A link:http://www.revpol.com/xymon_nut_scripts[NUT plugin] is available.
|
||||
|
||||
link:http://monami.sourceforge.net[MonAMI NUT plugin]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
A plugin to return UPS status to the MonAMI universal sensor framework.
|
||||
|
||||
link:http://munin.projects.linpro.no[Munin NUT plugin]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
A link:http://muninexchange.projects.linpro.no/?search&cid=0&pid=136&phid=279[NUT plugin] is available.
|
||||
|
||||
link:http://www.nagios.org/[Nagios plugin]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The link:http://sourceforge.net/projects/nagiosplug/[check_ups] plugin returns
|
||||
UPS status to the Nagios monitoring system using NUT.
|
||||
|
||||
Configuration GUIs
|
||||
------------------
|
||||
|
||||
link:http://www.knut.noveradsl.cz/knutsetting/index.html[KNutSetting]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
KNutSetting is a visual KDE tool for configuring NUT - Network UPS Tools.
|
||||
|
||||
Other software projects
|
||||
-----------------------
|
||||
|
||||
link:http://www.the-mcdonalds.org/Nut-Graph/[Nut-Graph]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
PHP4 / GD / MySQL / jpgraph package to visualize logged UPS status data.
|
||||
|
||||
[[PyNUT]]
|
||||
link:http://www.lestat.st/informatique/projets/pynut-en[PyNUT]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
PyNUT is an abstraction class written in Python to access NUT (Network UPS
|
||||
Tools) server and execute commands without needing to know the communication protocol.
|
||||
|
||||
link:http://bugs.debian.org/343530[RRDtool logging support]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This patch adds link:http://oss.oetiker.ch/rrdtool[RRDtool] logging support to NUT.
|
||||
|
||||
link:http://home.tele2.fr/elrik/[ups_control]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
A developing Python wrapper to upsc which can generate mails and shutdown the machine.
|
||||
|
||||
link:http://search.cpan.org/search?dist=ups-nut[UPS::Nut]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
A Perl module to talk to an UPS via NUT (Network UPS Tools) upsd.
|
||||
|
||||
|
||||
Hardware projects involving NUT
|
||||
-------------------------------
|
||||
|
||||
link:http://www.opengear.com/UPS.html[OpenGear]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Opengear provides an advanced NUT integration into many models.
|
||||
There is also a link:http://www.opengear.com/Videos/Network-UPS-Tools/Network-UPS-Tools.html[video presentation] of the NUT integration.
|
||||
|
||||
For more information on Opengear's contributions to NUT, have a look at the
|
||||
link:acknowledgements.html[acknowledgements information].
|
||||
|
||||
Synology
|
||||
~~~~~~~~
|
||||
|
||||
link:http://www.synology.com[Synology] has worked closely with Arnaud to integrate
|
||||
link:http://www.synology.com/enu/products/features/power.php[UPS support] on all
|
||||
its devices.
|
||||
|
||||
Alcatel Lucent IPBX
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Alcatel has been working for years with us (Patrick Agrain and Arnaud) to improve
|
||||
NUT integration into some of their IPBX.
|
||||
|
||||
link:http://www.readynas.com/?page_id=92[Netgear ReadyNAS]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The RAIDiator firmware for the ReadyNAS product line includes NUT to either
|
||||
monitor a local USB UPS, or to connect as a slave to a NUT server.
|
||||
|
||||
link:http://www.webbastards.com/projects/[lcd-nut]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
A Project to display the status of a UPS on computer through one of the many
|
||||
cheap LCD matrix displays available on the market.
|
||||
|
||||
Notes
|
||||
-------
|
||||
|
||||
- Client authors: send updates on your releases to the NUT users mailing list.
|
||||
We will also put a link to you in the news section of the top page when things change.
|
||||
|
||||
- If you know of a project which should be listed, please send in the URL.
|
14
docs/website/scripts/filter_png.js
Normal file
14
docs/website/scripts/filter_png.js
Normal file
|
@ -0,0 +1,14 @@
|
|||
$(function()
|
||||
{
|
||||
var imgs = $("img");
|
||||
for(var i = 0; i < imgs.length; i++)
|
||||
{
|
||||
var img = $(imgs[i]);
|
||||
if(img.attr("src").match(/\.png$/i))
|
||||
{
|
||||
img.replaceWith(
|
||||
"<div style=\"width:" + img.width() + "px;height:" + img.height() + "px;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + img.attr("src") + "', sizingMethod='crop');\"></div>"
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
19
docs/website/scripts/jquery.js
vendored
Normal file
19
docs/website/scripts/jquery.js
vendored
Normal file
File diff suppressed because one or more lines are too long
422
docs/website/scripts/nut_jquery.js
Normal file
422
docs/website/scripts/nut_jquery.js
Normal file
|
@ -0,0 +1,422 @@
|
|||
var NUT =
|
||||
{
|
||||
// UPS table DOM ids
|
||||
listID: "#ups_list",
|
||||
listBodyID: "#ups_list_body",
|
||||
|
||||
// Field names
|
||||
fields:
|
||||
[
|
||||
"manufacturer",
|
||||
"device-type",
|
||||
"support-level",
|
||||
"model",
|
||||
"comment",
|
||||
"driver"
|
||||
],
|
||||
|
||||
// Actual HTML table columns
|
||||
columns:
|
||||
[
|
||||
["manufacturer"],
|
||||
["model","comment"],
|
||||
["driver"],
|
||||
["support-level"],
|
||||
],
|
||||
|
||||
// driver => connection type mappings
|
||||
driverMap: function(driver)
|
||||
{
|
||||
if(driver.match(/bcmxcp_usb|blazer_usb|richcomm_usb|tripplite_usb|usbhid-ups/))
|
||||
return "USB";
|
||||
|
||||
if(driver.match(/snmp-ups|netxml-ups/))
|
||||
return "Network";
|
||||
|
||||
return "Serial";
|
||||
},
|
||||
|
||||
// Support level => CSS class mappings
|
||||
supportLevelClasses:
|
||||
{
|
||||
0: "",
|
||||
1: "red",
|
||||
2: "orange",
|
||||
3: "yellow",
|
||||
4: "blue",
|
||||
5: "green"
|
||||
},
|
||||
|
||||
tableCache: false,
|
||||
|
||||
// Parse GET parameters from window url and return them as a hash
|
||||
// The call format is:
|
||||
// stable-hcl.html?<filter name>=<filter value>
|
||||
// Refer to docs/website/stable-hcl.txt for examples
|
||||
parseGetParameters: function()
|
||||
{
|
||||
var url = window.location.href;
|
||||
url = url.replace(/#$/, "");
|
||||
var fieldPos = url.indexOf("?");
|
||||
var get = {};
|
||||
if(fieldPos > -1)
|
||||
{
|
||||
var fileName = url.substring(0, fieldPos);
|
||||
var getList = url.substring(fieldPos + 1).split("&");
|
||||
for(var i = 0; i<getList.length; i++)
|
||||
{
|
||||
var getField = getList[i].split("=");
|
||||
get[unescape(getField[0])] = unescape(getField[1]);
|
||||
}
|
||||
}
|
||||
return get;
|
||||
},
|
||||
|
||||
// UPS filter renderers by data column index
|
||||
filterRenderers:
|
||||
{
|
||||
"support-level": function(value)
|
||||
{
|
||||
var result = [];
|
||||
for(var i = 0; i < value; i++) result.push("*");
|
||||
return result.join("");
|
||||
},
|
||||
"driver": function(value)
|
||||
{
|
||||
return this.driverMap(value);
|
||||
},
|
||||
"device-type": function(value)
|
||||
{
|
||||
var map =
|
||||
{
|
||||
"pdu": "Power Distribution Unit",
|
||||
"ups": "Uninterruptible Power Supply",
|
||||
"scd": "Solar Controller Device"
|
||||
}
|
||||
|
||||
return map[value];
|
||||
}
|
||||
},
|
||||
|
||||
// Specific filter handlers
|
||||
filterHandlers:
|
||||
{
|
||||
/**
|
||||
* @param {string} value value to filter
|
||||
* @param {array} row raw data fields
|
||||
* @return {boolean} true if value passes the filter, false otherwise
|
||||
*/
|
||||
"driver": function(value, row)
|
||||
{
|
||||
var driver = row[this.fields.indexOf("driver")];
|
||||
if(this.driverMap(driver) == value) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns rendered UPS data according to column index
|
||||
* @param {integer} index
|
||||
* @param {string} value
|
||||
*/
|
||||
renderFilter: function(index, value)
|
||||
{
|
||||
var renderer = this.filterRenderers[this.fields[index]];
|
||||
if(typeof renderer == "function")
|
||||
return renderer.call(this, value);
|
||||
return value;
|
||||
},
|
||||
|
||||
/**
|
||||
* Initialization method
|
||||
*/
|
||||
init: function()
|
||||
{
|
||||
this.initFilters();
|
||||
this.sortUPSData(UPSData);
|
||||
this.buildUPSList(UPSData);
|
||||
this.buildFilters(UPSData);
|
||||
|
||||
var get = this.parseGetParameters();
|
||||
for(var param in get)
|
||||
{
|
||||
var filter = $("#"+param);
|
||||
if(filter)
|
||||
{
|
||||
filter.val(get[param]);
|
||||
this.doFilter();
|
||||
}
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Initialize filter filters references
|
||||
*/
|
||||
initFilters: function()
|
||||
{
|
||||
// Display filters fieldset hidden by default for user-agents not using javascript
|
||||
$("#filters-set").show();
|
||||
|
||||
this.filters =
|
||||
{
|
||||
"support-level": { index: this.fields.indexOf("support-level"), field: $("#support-level") },
|
||||
"device-type": { index: this.fields.indexOf("device-type"), field: $("#device-type") },
|
||||
"manufacturer": { index: this.fields.indexOf("manufacturer"), field: $("#manufacturer") },
|
||||
"model": { index: this.fields.indexOf("model"), field: $("#model") },
|
||||
"driver": { index: this.fields.indexOf("driver"), field: $("#connection") }
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Sorts table data by manufacturer and driver
|
||||
* @param {Object} data
|
||||
*/
|
||||
sortUPSData: function(data)
|
||||
{
|
||||
var mI = this.fields.indexOf("manufacturer"), dI = this.fields.indexOf("driver");
|
||||
data.sort(function(a,b)
|
||||
{
|
||||
var toLower = function(ar)
|
||||
{
|
||||
var res = ar.slice();
|
||||
res.forEach(function(i, index) { if(typeof i == "string") res[index] = i.toLowerCase() });
|
||||
return res;
|
||||
}
|
||||
var c = toLower(a), d = toLower(b);
|
||||
return c[mI] == d[mI] ? c[dI] > d[dI] : c[mI] > d[mI];
|
||||
});
|
||||
},
|
||||
/**
|
||||
* Builds UPS list from provided data
|
||||
* @param {array} data
|
||||
*/
|
||||
buildUPSList: function(data)
|
||||
{
|
||||
var list = $(this.listBodyID);
|
||||
|
||||
// Initialize table cache
|
||||
if(!this.tableCache) this.tableCache = list.html();
|
||||
|
||||
// If we're rebuilding the original table, just use the one in cache
|
||||
if(data == UPSData && this.tableCache)
|
||||
{
|
||||
list.html(this.tableCache);
|
||||
return;
|
||||
}
|
||||
|
||||
list.empty();
|
||||
|
||||
// Bailout if no data
|
||||
if(!data || data.length == 0) return;
|
||||
|
||||
// Build rows
|
||||
var cellHistory = [], rows = [];
|
||||
var rowHistory = data[0][0];
|
||||
var classes = ["even", "odd"], manufIndex = this.fields.indexOf("manufacturer"), currentClass = 0;
|
||||
data.forEach(function(upsRow, rowIndex)
|
||||
{
|
||||
if(upsRow[manufIndex] != rowHistory)
|
||||
{
|
||||
currentClass = Number(!currentClass);
|
||||
rowHistory = upsRow[manufIndex];
|
||||
}
|
||||
var cells = [];
|
||||
// Build cells
|
||||
this.columns.forEach(function(column, colIndex)
|
||||
{
|
||||
var cellContent = [];
|
||||
column.forEach(function(field) {cellContent.push(upsRow[this.fields.indexOf(field)])}, this);
|
||||
cellContent = cellContent.join("<br />");
|
||||
|
||||
// Inspect the last cell on this column and increase row span if the current cell has the same content
|
||||
var cH = cellHistory[colIndex];
|
||||
if(cH && cH.html == cellContent)
|
||||
cH.rowSpan += 1;
|
||||
else
|
||||
{
|
||||
var cell = "";
|
||||
if(column.indexOf("driver") != -1)
|
||||
{
|
||||
cell = {html: cellContent, rowSpan: 1, cls: this.supportLevelClasses[upsRow[this.fields.indexOf("support-level") || ""]]};
|
||||
}
|
||||
else cell = {html: cellContent, rowSpan: 1, cls: classes[currentClass] }
|
||||
|
||||
if(column.indexOf("support-level") != -1) cell.cls += " hidden";
|
||||
|
||||
cells.push(cell);
|
||||
cellHistory[colIndex] = cell;
|
||||
}
|
||||
}, this);
|
||||
rows.push(cells);
|
||||
}, this);
|
||||
|
||||
// Generate actual rows/cells tags
|
||||
rows.forEach(function(r, index)
|
||||
{
|
||||
r.forEach(function(c, index)
|
||||
{
|
||||
r[index] = ["<td class='", c.cls, "' rowspan='", c.rowSpan, "'>", c.html, "</td>"].join("");
|
||||
});
|
||||
rows[index] = ["<tr>", r.join(""), "</tr>"].join("");
|
||||
});
|
||||
|
||||
list.html(rows.join(""));
|
||||
},
|
||||
/**
|
||||
* Initialize filters event listeners
|
||||
* @param {Object} data
|
||||
*/
|
||||
buildFilters: function(data)
|
||||
{
|
||||
for(var f in this.filters)
|
||||
{
|
||||
var filter = this.filters[f];
|
||||
this.populateCombo(data, filter);
|
||||
filter.field.change(this.doFilter);
|
||||
var op = $("#op-" + (filter.index));
|
||||
if(op) op.change(this.doFilter);
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Load data in filter combos
|
||||
* @param {array} data
|
||||
* @param {object} combo
|
||||
* @param {integer} index
|
||||
*/
|
||||
populateCombo: function(data, filter)
|
||||
{
|
||||
var values = [];
|
||||
var valueDict = {};
|
||||
|
||||
var combo = filter.field;
|
||||
var oldValue = combo.val();
|
||||
combo.html("<option value='-1'>---</option>");
|
||||
|
||||
// Special case for connection type
|
||||
if(filter.field.attr("id") == "connection")
|
||||
{
|
||||
["Serial", "USB", "Network"].forEach(function(type)
|
||||
{
|
||||
values.push([type, type]);
|
||||
}, this);
|
||||
}
|
||||
else
|
||||
{
|
||||
data.forEach(function(row)
|
||||
{
|
||||
var value = row[filter.index];
|
||||
if(value != "" && !valueDict[value])
|
||||
{
|
||||
values.push([value, this.renderFilter(filter.index, value)]);
|
||||
valueDict[value] = true;
|
||||
}
|
||||
}, this);
|
||||
|
||||
values = values.sort();
|
||||
}
|
||||
|
||||
values.forEach(function(value)
|
||||
{
|
||||
var option = $(document.createElement("option"));
|
||||
option.val(value[0]);
|
||||
option.text(value[1]);
|
||||
combo.append(option);
|
||||
}, this);
|
||||
|
||||
combo.val(oldValue);
|
||||
},
|
||||
/**
|
||||
* Apply selected filters on UPS list
|
||||
*/
|
||||
doFilter: function()
|
||||
{
|
||||
var initialRows = UPSData.slice();
|
||||
var filteredRows = UPSData.slice();
|
||||
|
||||
/**
|
||||
* Applies a single filter on provided UPS data set
|
||||
* @param {string} value
|
||||
* @param {integer} index
|
||||
* @param {array} data
|
||||
* @returns {array} filtered data set
|
||||
*/
|
||||
var applyFilter = function(value, index, data)
|
||||
{
|
||||
var tmpData = [];
|
||||
tmpData = data.slice();
|
||||
tmpData.forEach(function(row, rowIndex)
|
||||
{
|
||||
var field = row[index];
|
||||
var handler = this.filterHandlers[this.fields[index]];
|
||||
if(handler)
|
||||
{
|
||||
if(!handler.apply(this, [value, row]))
|
||||
{
|
||||
data.splice(data.indexOf(row), 1);
|
||||
}
|
||||
}
|
||||
else if(row[index] != value) data.splice(data.indexOf(row), 1);
|
||||
}, this);
|
||||
return data;
|
||||
}
|
||||
|
||||
// Sequentially apply filters
|
||||
for(var f in NUT.filters)
|
||||
{
|
||||
var filter = NUT.filters[f];
|
||||
var value = filter.field.val();
|
||||
if(value != "-1") // Is filter active, i.e have the user picked a value in the filter combo
|
||||
{
|
||||
var opField = $("#op-" + filter.index);
|
||||
filteredRows = applyFilter.apply(NUT, [value, filter.index, filteredRows]);
|
||||
}
|
||||
}
|
||||
|
||||
// Rebuild UPS list and combos according to filtered data
|
||||
NUT.buildUPSList(filteredRows);
|
||||
["manufacturer", "model", "driver"].forEach(function(id)
|
||||
{
|
||||
if(this.id != id) this.populateCombo(filteredRows, this.filters[id]);
|
||||
}, NUT);
|
||||
},
|
||||
|
||||
resetCombos: function()
|
||||
{
|
||||
for(var f in this.filters)
|
||||
{
|
||||
var field = this.filters[f].field;
|
||||
this.populateCombo(UPSData, this.filters[f]);
|
||||
field.val("-1");
|
||||
}
|
||||
this.buildUPSList(UPSData);
|
||||
}
|
||||
}
|
||||
|
||||
if(typeof Array.prototype.indexOf != "function")
|
||||
{
|
||||
Array.prototype.indexOf = function(elt)
|
||||
{
|
||||
var i = 0;
|
||||
while(i < this.length)
|
||||
{
|
||||
if(this[i] == elt) return i;
|
||||
i++;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
if(typeof Array.prototype.forEach != "function")
|
||||
{
|
||||
Array.prototype.forEach = function(cb, scope)
|
||||
{
|
||||
for (var i = 0, n = this.length; i<n; i++)
|
||||
if (i in this)
|
||||
cb.call(scope, this[i], i, this);
|
||||
}
|
||||
}
|
||||
|
||||
// Global initialization
|
||||
$(function()
|
||||
{
|
||||
NUT.init.call(NUT);
|
||||
});
|
69
docs/website/scripts/toc.js
Normal file
69
docs/website/scripts/toc.js
Normal file
|
@ -0,0 +1,69 @@
|
|||
/* Author: Mihai Bazon, September 2002
|
||||
* http://students.infoiasi.ro/~mishoo
|
||||
*
|
||||
* Table Of Content generator
|
||||
* Version: 0.4
|
||||
*
|
||||
* Feel free to use this script under the terms of the GNU General Public
|
||||
* License, as long as you do not remove or alter this notice.
|
||||
*/
|
||||
|
||||
/* modified by Troy D. Hanson, September 2006. License: GPL */
|
||||
/* modified by Stuart Rackham, October 2006. License: GPL */
|
||||
|
||||
function getText(el) {
|
||||
var text = "";
|
||||
for (var i = el.firstChild; i != null; i = i.nextSibling) {
|
||||
if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
|
||||
text += i.data;
|
||||
else if (i.firstChild != null)
|
||||
text += getText(i);
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
function TocEntry(el, text, toclevel) {
|
||||
this.element = el;
|
||||
this.text = text;
|
||||
this.toclevel = toclevel;
|
||||
}
|
||||
|
||||
function tocEntries(el, toclevels) {
|
||||
var result = new Array;
|
||||
var re = new RegExp('[hH]([2-'+(toclevels+1)+'])');
|
||||
// Function that scans the DOM tree for header elements (the DOM2
|
||||
// nodeIterator API would be a better technique but not supported by all
|
||||
// browsers).
|
||||
var iterate = function (el) {
|
||||
for (var i = el.firstChild; i != null; i = i.nextSibling) {
|
||||
if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
|
||||
var mo = re.exec(i.tagName)
|
||||
if (mo)
|
||||
result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
|
||||
iterate(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
iterate(el);
|
||||
return result;
|
||||
}
|
||||
|
||||
// This function does the work. toclevels = 1..4.
|
||||
function generateToc(toclevels) {
|
||||
var toc = document.getElementById("toc");
|
||||
var entries = tocEntries(document.getElementsByTagName("body")[0], toclevels);
|
||||
for (var i = 0; i < entries.length; ++i) {
|
||||
var entry = entries[i];
|
||||
if (entry.element.id == "")
|
||||
entry.element.id = "toc" + i;
|
||||
var a = document.createElement("a");
|
||||
a.href = "#" + entry.element.id;
|
||||
a.appendChild(document.createTextNode(entry.text));
|
||||
var div = document.createElement("div");
|
||||
div.appendChild(a);
|
||||
div.className = "toclevel" + entry.toclevel;
|
||||
toc.appendChild(div);
|
||||
}
|
||||
if (entries.length == 0)
|
||||
document.getElementById("header").removeChild(toc);
|
||||
}
|
101
docs/website/ups-protocols.txt
Normal file
101
docs/website/ups-protocols.txt
Normal file
|
@ -0,0 +1,101 @@
|
|||
|
||||
WARNING: this is a Work In Progress document. For the time being, you
|
||||
should refer to the
|
||||
link:http://old.networkupstools.org/protocols/[old NUT website library].
|
||||
|
||||
UPS Protocols
|
||||
-------------
|
||||
|
||||
All protocol information on this site is provided in the hope that it will be
|
||||
useful.
|
||||
|
||||
Some are officialy provided by the manufacturers, while others are the result of
|
||||
reverse engineering work.
|
||||
|
||||
However, UPS hardware is plentiful and varied. Test your software thoroughly, as
|
||||
these documents may not always reflect the reality within your equipment!
|
||||
|
||||
APC
|
||||
~~~
|
||||
|
||||
- link:ups-protocols/apcsmart.html[APC's smart protocol] - unofficial decoding work
|
||||
|
||||
Belkin
|
||||
~~~~~~
|
||||
|
||||
- link:ups-protocols/belkinsmart.html[Belkin's smart protocol] - unofficial decoding work on the Regulator Pro
|
||||
|
||||
- link:ups-protocols/belkinuniversal.html[Belkin Universal UPS] - courtesy of Peter Selinger
|
||||
|
||||
Eaton
|
||||
~~~~~
|
||||
|
||||
- Eaton Protocols Library - all official Eaton documents are here, including Powerware, MGE, ...
|
||||
|
||||
- Best Fortress protocol - for LI 520, 720, 1020, and 1420 models
|
||||
|
||||
- SOLA/Best Power protocol (Phoenixtec) - courtesy of Invensys Energy Systems
|
||||
|
||||
MicroDowell
|
||||
~~~~~~~~~~~
|
||||
|
||||
- MicroDowell UPS Serial Protocol v3.3.1 (PDF, 225KB)
|
||||
|
||||
MGE
|
||||
~~~
|
||||
|
||||
- MGE Protocols Library - all official MGE documents are here
|
||||
|
||||
ONEAC
|
||||
~~~~~
|
||||
|
||||
- ONEAC serial information - two scans
|
||||
|
||||
Opti-UPS
|
||||
~~~~~~~~
|
||||
|
||||
- Opti-UPS protocol - more guesswork
|
||||
|
||||
Powercom
|
||||
~~~~~~~~
|
||||
|
||||
All these document are officially provided by Powercom
|
||||
|
||||
- link:ups-protocols/powercom/Software_USB_communication_controller_BNT_series.doc[USB information for BNT series]
|
||||
- link:ups-protocols/powercom/Software_USB_communication_controller_IMPERIAL_series_R21.doc[USB information for IMPERIAL series]
|
||||
- link:ups-protocols/powercom/Software_USB_communication_controller_SKP_series.doc[USB information for SKP series]
|
||||
- link:ups-protocols/powercom/Software_USB_communication_controller_WOW_series.doc[USB information for WOW series]
|
||||
|
||||
PowerKinetics
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
- PowerKinetics MiniCOL protocol - courtesy of PowerKinetics technical support
|
||||
|
||||
Standard protocols
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
SEC
|
||||
^^^
|
||||
- link:ups-protocols/sec.html[SEC protocol] - superset of the US9003, below
|
||||
|
||||
- link:ups-protocols/sec-standard.html[SEC standard UPS Communication interface] - 15 scanned pages
|
||||
|
||||
- link:us9003.html[US9003 UPS Communication Interface]
|
||||
|
||||
SNMP
|
||||
^^^^
|
||||
|
||||
- link:ups-protocols/snmp.html[SNMP]
|
||||
- link:http://powerquality.eaton.com/Support/Software-Drivers/Downloads/connectivity-firmware/bestpwr2.mib[Best Power MIB]
|
||||
|
||||
USB/HID Power Devices Class
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
- link:http://www.usb.org/developers/devclass_docs/pdcv10.pdf[USB Usage Tables for HID Power Devices] (offsite PDF, 351K)
|
||||
|
||||
|
||||
Various
|
||||
~~~~~~~
|
||||
|
||||
- link:ups-protocols/megatec.html[Megatec] UPS Protocol
|
||||
|
185
docs/website/web-layout.conf
Normal file
185
docs/website/web-layout.conf
Normal file
|
@ -0,0 +1,185 @@
|
|||
#
|
||||
# Network UPS Tools website layout (based on AsciiDoc's).
|
||||
# Three division CSS based layout
|
||||
#
|
||||
# Simulated frames using CSS (fixed banner and menu, scrolling content).
|
||||
# NOTE: This layout does not work with IE6.
|
||||
#
|
||||
# +-----------------------------------------------------+
|
||||
# | #layout-banner |
|
||||
# +--------------+--------------------------------------+
|
||||
# | | |
|
||||
# | | |
|
||||
# | #layout-menu | #layout-content |
|
||||
# | | |
|
||||
# | | |
|
||||
# | | |
|
||||
# +--------------+--------------------------------------+
|
||||
#
|
||||
# Each of the three divisions is enclosed in a same-named *-box division
|
||||
# which position and size the layout.
|
||||
#
|
||||
# - The #layout-content division is a container for AsciiDoc page documents.
|
||||
# - Documents rendered in the #layout-content use the standard AsciiDoc
|
||||
# xhtml11 backend stylesheets.
|
||||
|
||||
[specialwords]
|
||||
#emphasizedwords=(?u)\\?\bNetwork UPS Tools\b
|
||||
#monospacedwords=(?u)\\?\basciidoc\(1\) (?u)\\?\ba2x\(1\)
|
||||
|
||||
[header]
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
||||
<head>
|
||||
<title>Network UPS Tools - {doctitle}</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset={encoding}" />
|
||||
<meta name="generator" content="AsciiDoc {asciidoc-version}" />
|
||||
ifdef::index-only[]
|
||||
<meta name="description" content="Power Devices support" />
|
||||
<meta name="keywords" content="Free Software, UPS, Uninterruptible Power Supplies, PDU, Power Distributions Units, Solar Controllers, Power Devices" />
|
||||
endif::index-only[]
|
||||
<link rel="stylesheet" href="{stylesdir=css}/{theme={backend}}.css" type="text/css" />
|
||||
{doctype-manpage}<link rel="stylesheet" href="{stylesdir=.}/{theme={backend}}-manpage.css" type="text/css" />
|
||||
ifdef::quirks[]
|
||||
<link rel="stylesheet" href="{stylesdir=css}/{theme={backend}}-quirks.css" type="text/css" />
|
||||
endif::quirks[]
|
||||
<link rel="stylesheet" href="{stylesdir=css}/web-layout.css" type="text/css" />
|
||||
<link rel="shortcut icon" href="faviconut.ico" />
|
||||
<link rel="icon" href="faviconut.png" />
|
||||
ifdef::toc[]
|
||||
<script type="text/javascript">
|
||||
/*<![CDATA[*/
|
||||
window.onload = function()\{generateToc({toclevels=2})\}
|
||||
/*]]>*/
|
||||
</script>
|
||||
<script type="text/javascript" src="{scriptsdir=.}/toc.js"></script>
|
||||
endif::toc[]
|
||||
ifdef::hcl[]
|
||||
<script type="text/javascript" src="{scriptsdir=.}/jquery.js"></script>
|
||||
<script type="text/javascript" src="{scriptsdir=.}/ups_data.js"></script>
|
||||
<script language="javascript1.7" type="text/javascript" src="{scriptsdir=.}/nut_jquery.js"></script>
|
||||
endif::hcl[]
|
||||
<!--[if lte IE 7]>
|
||||
<link rel="stylesheet" href="{stylesdir=css}/ie-overrides.css" type="text/css" />
|
||||
<![endif]-->
|
||||
<!--[if lte IE 6]>
|
||||
<script type="text/javascript" src="./scripts/filter_png.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
<div id="layout-banner-box">
|
||||
<div id="layout-banner">
|
||||
<div id="layout-title">Network UPS Tools</div>
|
||||
<div id="layout-description">Power Devices support</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="layout-menu-box">
|
||||
<ul id="layout-menu">
|
||||
<li><a href="index.html">Home</a></li>
|
||||
<li><a href="download.html">Download</a></li>
|
||||
<li><a href="projects.html">Related projects</a></li>
|
||||
<li><a href="stable-hcl.html">Compatibility</a></li>
|
||||
<li><a href="documentation.html">Documentation</a></li>
|
||||
<li><a href="support.html">Support</a></li>
|
||||
<li><a href="https://alioth.debian.org/projects/nut/">Alioth Forge</a></li>
|
||||
</ul>
|
||||
<div id="sponsor"><span>Hosted by<br/></span>
|
||||
<a href="http://powerquality.eaton.com"><img src="images/eaton-logo.png" alt="Eaton" /></a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="layout-content-box">
|
||||
<div id="layout-content">
|
||||
# Article, book header.
|
||||
ifndef::doctype-manpage[]
|
||||
<div id="header">
|
||||
<h1>{doctitle}</h1>
|
||||
<span id="author">{author}</span><br />
|
||||
<span id="email"><tt><<a href="mailto:{email}">{email}</a>></tt></span><br />
|
||||
{authored}<span id="revision">version {revnumber}{revdate?,}</span>
|
||||
{authored}{revdate}
|
||||
</div>
|
||||
ifdef::toc[]
|
||||
<div id="toc">
|
||||
<div id="toctitle">Table of Contents</div>
|
||||
<noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
|
||||
</div>
|
||||
endif::toc[]
|
||||
endif::doctype-manpage[]
|
||||
# Man page header.
|
||||
ifdef::doctype-manpage[]
|
||||
<div id="header">
|
||||
<h1>
|
||||
{doctitle} Manual Page
|
||||
</h1>
|
||||
ifdef::toc[]
|
||||
<div id="toc">
|
||||
<div id="toctitle">Table of Contents</div>
|
||||
<noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
|
||||
</div>
|
||||
endif::toc[]
|
||||
<h2>NAME</h2>
|
||||
<div class="sectionbody">
|
||||
<p>{manname} -
|
||||
{manpurpose}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
endif::doctype-manpage[]
|
||||
|
||||
[footer]
|
||||
<div id="footer">
|
||||
<div id="footer-text">
|
||||
Version {revision}<br />
|
||||
Last updated {localdate} {localtime}
|
||||
</div>
|
||||
ifdef::badges[]
|
||||
<div id="footer-badges">
|
||||
ifdef::textonly[]
|
||||
Valid <a href="http://validator.w3.org/check?uri=referer">XHTML</a>
|
||||
and <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a>.
|
||||
endif::textonly[]
|
||||
ifndef::textonly[]
|
||||
<a href="http://www.methods.co.nz/asciidoc/">
|
||||
<img style="border:0;width:88px;height:31px"
|
||||
src="images/asciidoc.png"
|
||||
alt="Powered by AsciiDoc" />
|
||||
</a>
|
||||
<a href="http://validator.w3.org/check?uri=referer">
|
||||
<img style="border:0;width:88px;height:31px"
|
||||
src="http://www.w3.org/Icons/valid-xhtml11-blue"
|
||||
alt="Valid XHTML 1.1" height="31" width="88" />
|
||||
</a>
|
||||
<a href="http://jigsaw.w3.org/css-validator/check?uri=referer">
|
||||
<img style="border:0;width:88px;height:31px"
|
||||
src="http://jigsaw.w3.org/css-validator/images/vcss-blue"
|
||||
alt="Valid CSS!" />
|
||||
</a>
|
||||
<a href="http://www.mozilla.org/products/firefox/">
|
||||
<img style="border:none; width:110px; height:32px;"
|
||||
src="http://www.spreadfirefox.com/community/images/affiliates/Buttons/110x32/safer.gif"
|
||||
alt="Get Firefox!" />
|
||||
</a>
|
||||
endif::textonly[]
|
||||
</div>
|
||||
endif::badges[]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
ifdef::analytics[]
|
||||
<!-- script type="text/javascript" src="{scriptsdir=.}/ga.js"></script -->
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
try {
|
||||
var pageTracker = _gat._getTracker("UA-9664272-1");
|
||||
pageTracker._trackPageview();
|
||||
} catch(err) {}
|
||||
</script>
|
||||
endif::analytics[]
|
||||
</body>
|
||||
</html>
|
19
docs/website/website.txt
Normal file
19
docs/website/website.txt
Normal file
|
@ -0,0 +1,19 @@
|
|||
Welcome
|
||||
=======
|
||||
|
||||
The primary goal of the Network UPS Tools (NUT) project is to provide support
|
||||
for Power Devices, such as Uninterruptible Power Supplies, Power Distribution
|
||||
Units and Solar Controllers.
|
||||
|
||||
NUT provides many control and monitoring link:features.html[features], with a
|
||||
uniform control and management interface.
|
||||
|
||||
More than 100 different manufacturers, and several thousands models are
|
||||
link:stable-hcl.html[compatible].
|
||||
|
||||
This software is the combined effort of many
|
||||
link:acknowledgements.html[individuals and companies].
|
||||
|
||||
News
|
||||
----
|
||||
include::news.txt[]
|
Loading…
Add table
Add a link
Reference in a new issue