[ Tcllib Home | Main Table Of Contents | Table Of Contents | Keyword Index | Categories | Modules | Applications ]

# fileutil::magic::cfront(n) 1.0 tcllib "file utilities"

## Name

fileutil::magic::cfront - Generator core for compiler of magic(5) files

## Synopsis

- package require Tcl 8.4
- package require fileutil::magic::cfront ?1.0?
- package require fileutil::magic::cgen ?1.0?
- package require fileutil::magic::rt ?1.0?
- package require struct::list
- package require fileutil

- ::fileutil::magic::cfront::compile path...
- ::fileutil::magic::cfront::procdef procname path...
- ::fileutil::magic::cfront::install path...

## Description

This package provides the frontend of a compiler of magic(5) files into recognizers based on the fileutil::magic::rt recognizer runtime package. For the generator backed used by this compiler see the package fileutil::magic::cgen.

## COMMANDS

::fileutil::magic::cfront::compile path...

  This command takes the paths of one or more files and directories and compiles all the files, and the files in all the directories into a single recognizer for all the file types specified in these files.

  All the files have to be in the format specified by magic(5).

  The result of the command is a Tcl script containing the generated recognizer.

::fileutil::magic::cfront::procdef procname path...

  This command behaves like ::fileutil::magic::cfront::compile with regard to the specified path arguments, then wraps the resulting recognizer script into a procedure named procname, puts code setting up the namespace of procname in front, and returns the resulting script.

::fileutil::magic::cfront::install path...

  This command uses ::fileutil::magic::cfront::procdef to compile each of the paths into a recognizer procedure and installs the result in the current interpreter.

  The name of each new procedure is derived from the name of the file/directory used in its creation, with file/directory "FOO" causing the creation of procedure ::fileutil::magic::/FOO::run.

## Bugs, Ideas, Feedback

This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category fileutil :: magic of the Tcllib Trackers. Please also report any ideas for enhancements you may have for either package and/or documentation.

## See Also

file(1), fileutil, magic(5)

## Keywords

file recognition, file type, file utilities, mime, type

## Category

Programming tools