Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Template::Plugin::FileUser Contributed Perl DocumentaTemplate::Plugin::File(3)

NAME
       Template::Plugin::File -	Plugin providing information about files

SYNOPSIS
	   [% USE File(filepath) %]
	   [% File.path	%]	   # full path
	   [% File.name	%]	   # filename
	   [% File.dir %]	   # directory

DESCRIPTION
       This plugin provides an abstraction of a	file.  It can be used to fetch
       details about files from	the file system, or to represent abstract
       files (e.g. when	creating an index page)	that may or may	not exist on a
       file system.

       A file name or path should be specified as a constructor	argument.
       e.g.

	   [% USE File('foo.html') %]
	   [% USE File('foo/bar/baz.html') %]
	   [% USE File('/foo/bar/baz.html') %]

       The file	should exist on	the current file system	(unless	"nostat"
       option set, see below) as an absolute file when specified with as
       leading '"/"' as	per '"/foo/bar/baz.html"', or otherwise	as one
       relative	to the current working directory.  The constructor performs a
       "stat()"	on the file and	makes the 13 elements returned available as
       the plugin items:

	   dev ino mode	nlink uid gid rdev size
	   atime mtime ctime blksize blocks

       e.g.

	   [% USE File('/foo/bar/baz.html') %]

	   [% File.mtime %]
	   [% File.mode	%]
	   ...

       In addition, the	"user" and "group" items are set to contain the	user
       and group names as returned by calls to "getpwuid()" and	"getgrgid()"
       for the file "uid" and "gid" elements, respectively.  On	Win32
       platforms on which "getpwuid()" and "getgrid()" are not available,
       these values are	undefined.

	   [% USE File('/tmp/foo.html')	%]
	   [% File.uid %]      # e.g. 500
	   [% File.user	%]     # e.g. abw

       This user/group lookup can be disabled by setting the "noid" option.

	   [% USE File('/tmp/foo.html',	noid=1)	%]
	   [% File.uid %]      # e.g. 500
	   [% File.user	%]     # nothing

       The "isdir" flag	will be	set if the file	is a directory.

	   [% USE File('/tmp') %]
	   [% File.isdir %]    # 1

       If the "stat()" on the file fails (e.g. file doesn't exists, bad
       permission, etc)	then the constructor will throw	a "File" exception.
       This can	be caught within a "TRY...CATCH" block.

	   [% TRY %]
	      [% USE File('/tmp/myfile') %]
	      File exists!
	   [% CATCH File %]
	      File error: [% error.info	%]
	   [% END %]

       Note the	capitalisation of the exception	type, '"File"',	to indicate an
       error thrown by the "File" plugin, to distinguish it from a regular
       "file" exception	thrown by the Template Toolkit.

       Note that the "File" plugin can also be referenced by the lower case
       name '"file"'.  However,	exceptions are always thrown of	the "File"
       type, regardless	of the capitalisation of the plugin named used.

	   [% USE file('foo.html') %]
	   [% file.mtime %]

       As with any other Template Toolkit plugin, an alternate name can	be
       specified for the object	created.

	   [% USE foo =	file('foo.html') %]
	   [% foo.mtime	%]

       The "nostat" option can be specified to prevent the plugin constructor
       from performing a "stat()" on the file specified.  In this case,	the
       file does not have to exist in the file system, no attempt will be made
       to verify that it does, and no error will be thrown if it doesn't.  The
       entries for the items usually returned by "stat()" will be set empty.

	   [% USE file('/some/where/over/the/rainbow.html', nostat=1)
	   [% file.mtime %]	# nothing

METHODS
       All "File" plugins, regardless of the "nostat" option, have set a
       number of items relating	to the original	path specified.

   path
       The full, original file path specified to the constructor.

	   [% USE file('/foo/bar.html')	%]
	   [% file.path	%]     # /foo/bar.html

   name
       The name	of the file without any	leading	directories.

	   [% USE file('/foo/bar.html')	%]
	   [% file.name	%]     # bar.html

   dir
       The directory element of	the path with the filename removed.

	   [% USE file('/foo/bar.html')	%]
	   [% file.name	%]     # /foo

   ext
       The file	extension, if any, appearing at	the end	of the path following
       a '"."' (not included in	the extension).

	   [% USE file('/foo/bar.html')	%]
	   [% file.ext %]      # html

   home
       This contains a string of the form '"../.."' to represent the upward
       path from a file	to its root directory.

	   [% USE file('bar.html') %]
	   [% file.home	%]     # nothing

	   [% USE file('foo/bar.html') %]
	   [% file.home	%]     # ..

	   [% USE file('foo/bar/baz.html') %]
	   [% file.home	%]     # ../..

   root
       The "root" item can be specified	as a constructor argument, indicating
       a root directory	in which the named file	resides.  This is otherwise
       set empty.

	   [% USE file('foo/bar.html', root='/tmp') %]
	   [% file.root	%]     # /tmp

   abs
       This returns the	absolute file path by constructing a path from the
       "root" and "path" options.

	   [% USE file('foo/bar.html', root='/tmp') %]
	   [% file.path	%]     # foo/bar.html
	   [% file.root	%]     # /tmp
	   [% file.abs %]      # /tmp/foo/bar.html

   rel(path)
       This returns a relative path from the current file to another path
       specified as an argument.  It is	constructed by appending the path to
       the '"home"' item.

	   [% USE file('foo/bar/baz.html') %]
	   [% file.rel('wiz/waz.html') %]      # ../../wiz/waz.html

EXAMPLES
	   [% USE file('/foo/bar/baz.html') %]

	   [% file.path	 %]	 # /foo/bar/baz.html
	   [% file.dir	 %]	 # /foo/bar
	   [% file.name	 %]	 # baz.html
	   [% file.home	 %]	 # ../..
	   [% file.root	 %]	 # ''
	   [% file.abs	 %]	 # /foo/bar/baz.html
	   [% file.ext	 %]	 # html
	   [% file.mtime %]	 # 987654321
	   [% file.atime %]	 # 987654321
	   [% file.uid	 %]	 # 500
	   [% file.user	 %]	 # abw

	   [% USE file('foo.html') %]

	   [% file.path	%]	     # foo.html
	   [% file.dir	%]	 # ''
	   [% file.name	%]	     # foo.html
	   [% file.root	%]	 # ''
	   [% file.home	%]	 # ''
	   [% file.abs	%]	 # foo.html

	   [% USE file('foo/bar/baz.html') %]

	   [% file.path	%]	     # foo/bar/baz.html
	   [% file.dir	%]	 # foo/bar
	   [% file.name	%]	     # baz.html
	   [% file.root	%]	 # ''
	   [% file.home	%]	 # ../..
	   [% file.abs	%]	 # foo/bar/baz.html

	   [% USE file('foo/bar/baz.html', root='/tmp')	%]

	   [% file.path	%]	     # foo/bar/baz.html
	   [% file.dir	%]	 # foo/bar
	   [% file.name	%]	     # baz.html
	   [% file.root	%]	 # /tmp
	   [% file.home	%]	 # ../..
	   [% file.abs	%]	 # /tmp/foo/bar/baz.html

	   # calculate other file paths	relative to this file and its root
	   [% USE file('foo/bar/baz.html', root	=> '/tmp/tt2') %]

	   [% file.path('baz/qux.html')	%]	   # ../../baz/qux.html
	   [% file.dir('wiz/woz.html')	%]     # ../../wiz/woz.html

AUTHORS
       Michael Stevens wrote the original "Directory" plugin on	which this is
       based.  Andy Wardley split it into separate "File" and "Directory"
       plugins,	added some extra code and documentation	for "VIEW" support,
       and made	a few other minor tweaks.

COPYRIGHT
       Copyright 2000-2007 Michael Stevens, Andy Wardley.

       This module is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

SEE ALSO
       Template::Plugin, Template::Plugin::Directory, Template::View

perl v5.32.0			  2020-07-13	     Template::Plugin::File(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | EXAMPLES | AUTHORS | COPYRIGHT | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Template::Plugin::File&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help