language-puppet alternatives and similar packages
Based on the "System" category.
Alternatively, view language-puppet alternatives based on common mentions on social networks and blogs.
turtle9.9 3.6 language-puppet VS turtleShell programming, Haskell style
bench9.9 0.0 language-puppet VS benchCommand-line benchmark tool
xmobar9.9 8.7 language-puppet VS xmobarA minimalistic status bar
taffybar9.9 0.0 language-puppet VS taffybarA gtk based status bar for tiling window managers such as XMonad
optparse-applicativeApplicative option parser
angel9.7 0.0 language-puppet VS angelProcess Monitoring/Management, Like Daemontools
nix-diff9.6 0.0 language-puppet VS nix-diffExplain why two Nix derivations differ
date-cache9.6 0.0 language-puppet VS date-cacheA fast logging system for Haskell
process9.6 2.2 language-puppet VS processLibrary for dealing with system processes
unix9.6 0.0 language-puppet VS unixPOSIX functionality
hapistrano9.5 6.3 language-puppet VS hapistranoDeploy tool for Haskell applications, like Capistrano for Rails
nix-deploy9.5 0.0 language-puppet VS nix-deployDeploy software or an entire NixOS system configuration to another NixOS system
ghc-hotswap9.5 0.0 language-puppet VS ghc-hotswapExample code for how we swap compiled code within a running Haskell process.
optparse-genericAuto-generate a command-line parser for your datatype
envy9.4 0.0 language-puppet VS envy:angry: Environmentally friendly environment variables
directory9.3 2.2 language-puppet VS directoryPlatform-independent library for basic file system operations
pid19.2 0.0 language-puppet VS pid1Do signal handling and orphan reaping for Unix PID1 init processes
filepath9.2 6.2 language-puppet VS filepathHaskell FilePath core library
typed-process9.2 2.2 language-puppet VS typed-processAlternative API for processes, featuring more type safety
log9.0 1.3 language-puppet VS logStructured logging solution.
openssh-github-keysControl SSH access to your servers via GitHub teams
clock9.0 0.0 language-puppet VS clockHigh-resolution clock functions: monotonic, realtime, cputime.
hail8.9 0.0 language-puppet VS hailA service for pull-based continuous deployment based on hydra.
hnix-store-coreHaskell implementation of the nix store API
ekg-core8.9 0.0 language-puppet VS ekg-coreLibrary for tracking system metrics
clifm8.9 0.0 language-puppet VS clifmCommand Line Interface File Manager
monky8.8 0.0 language-puppet VS monkyThe main repository for monky
logsink8.7 0.0 language-puppet VS logsinkA logging framework for Haskell
ekg-cloudwatchCloudWatch stats for ekg
hobbes8.7 0.0 language-puppet VS hobbesA cross-platform file activity monitor
cef8.7 0.0 language-puppet VS cefA Haskell library for CEF (Commont Event Format)
system-fileio8.6 0.0 language-puppet VS system-fileioContains the system-filepath and system-fileio packages
atomic-write8.6 0.0 language-puppet VS atomic-writeWrites files atomically in Haskell while preserving permissions
unix-compat8.6 0.0 language-puppet VS unix-compatHaskell portable POSIX-compatibility layer
apotiki8.6 0.0 language-puppet VS apotikia faster debian repository
logger8.5 0.0 language-puppet VS loggerFast & extensible logging framework for Haskell!
twitch8.4 0.0 language-puppet VS twitchA high level file watcher DSL
ascii-progressA simple Haskell progress bar for the console. Heavily borrows from TJ Holowaychuk's Node.JS project
optparse-declarativeDeclarative command-line option parser
which8.4 0.0 language-puppet VS whichDetermine the full path to an executable.
executable-hashProvides the SHA1 hash of the program executable
ekg-statsd8.3 0.0 language-puppet VS ekg-statsdFlush system metrics to statsd
plugins8.3 0.0 language-puppet VS pluginsDynamic linking and runtime evaluation of Haskell, and C, including dependency chasing and package resolution.
hinotify8.3 0.0 language-puppet VS hinotifyHaskell binding to inotify
directory-contentsRecursively build a tree of directory contents, avoiding symlink cycles
halfs8.2 0.0 language-puppet VS halfsThe Haskell File System: A file system implementation in Haskell
lxc8.2 0.0 language-puppet VS lxcHigh level Haskell bindings to LXC (Linux containers).
HFuse8.2 0.0 language-puppet VS HFuseHaskell bindings for the FUSE library
hen8.2 0.0 language-puppet VS henHaskell bindings to Xen hypervisor interface
nix-derivationParse and render *.drv files
Clean code begins in your IDE with SonarLint
Do you think we are missing an alternative of language-puppet or a related project?
A library to work with Puppet manifests, test them and eventually replace everything ruby.
Install with stack:
stack install language-puppet
Install with nix:
nix-env -i -f https://github.com/bartavelle/language-puppet/tarball/v1.4.5
1.4.3 with any commit ref or tag).
Build from sources:
git clone https://github.com/bartavelle/language-puppet.git cd language-puppet # Using nix nix build # Using stack ln -s stack-10.yaml stack.yaml stack build
puppetresources --puppetdir /where/your/puppet/files/are --node node.name.com
puppetresources command is a command line utility that let you
interactively compute catalogs on your local computer. It is much faster
than its ruby counterpart, and has been designed for giving assistance
to the Puppet catalog writer.
There are 4 different modes:
--nodewill display all resources on screen in a nice user-friendly colored fashion.
--alldisplays statitics and optionally shows dead code.
--parseonly goes as far as parsing. No interpretation.
--showcontentto display file content.
Catalog is not computed exactly the same way Puppet does. Some good practices are enforced. A strict and more permissive mode are provided.
Command line arguments
--puppetdirThis argument is mandatory except in
parsemode. It must point to the base of the puppet directory (the directory that contains the
node mode. This let you specify the name of the node you wish to compute the catalog for.
stats mode. If you specify
allnodesit will compute the catalogs for all nodes that are specified in
site.pp(this will not work for regexp-specified or the default nodes). You can also specify a list of nodes separated by a comma.
--deadcode, it will display the list of puppet files that have not been used.
This is useful as automated tests, to check a change didn’t break something. You might want to run this option with
--typeFilters the resources of the resulting catalog by type. Using PCRE regex is supported.
--nameFilters the resources of the resulting catalog by name. Using PCRE regex is supported.
-nis the exact name of a file type resource defined in the catalog, this will display the file content nicely. Useful for debugging templates.
puppetresources -p . -o mynodename -n '/etc/motd' --showcontent
-vPossible values are : DEBUG, INFO, NOTICE, WARNING, ERROR
--pdburlExpects the url of a live PuppetDB.
--pdbfileExpects a path to a fake PuppetDB, represented as a YAML file on disk. This option is pretty slow but can be invaluable to test exported resources tricks.
--hieraExpects the path to the
--ignoredmodulesExpects a list of comma-separated modules. The interpreter will not try to parse and evaluate the defined types and classes from this module. This is useful for using modules that use bad practices forbidden by
--commitdbWhen this flag is set, exported resources, catalogs and facts are saved in the PuppetDB. This is useful in conjunction with
--checkExportedWhen this flag is set, exported resources are saved in the PuppetDB. This is useful in conjunction with
--JSONDisplays the catalog as a Puppet-compatible JSON file, that can then be used with
--strictEnable strict check. Strict is less permissive than vanilla Puppet. It is meant to prevent some pitfalls by enforcing good practices. For instance it refuses to
- silently ignore/convert
- lookup an hash with an unknown key and return
- silently ignore/convert
--noextratestsDisable the extra tests from
parse mode. Specify the puppet file to be parsed. Variables are not resolved. No interpretation.
--versionOutput version information and exist.
Settings defaults using a yaml file
Defaults for some of these options can be set using a
/yourworkingdirectory/tests/defaults.yaml file. For instance
OptionalTests is checking that all users and groups are known. Because
some of these users and groups might be defined outside puppet, a list
of known ones is used internally. This can be overridden in that file
using the key
Please look at the template file for a list of possible defaults.
pdbquery command will work with different implementations of
PuppetDB (the official one with its HTTP API, the file-based backend and
dummy ones). It can be used to:
- export data from production PuppetDB to a file (in order to debug some issue with `puppetresources**).
- query a Puppetdb
Command line arguments
--locationThe URL of the PuppetDB when working with a remote PuppetDB, a file path when working with the file-based test implementation.
--pdbtypeThe type of PuppetDB to work with:
- dummy: a dummy PuppetDB.
- remote: a "real" PuppetDB, accessed by its HTTP API.
- test: a file-based backend emulating a PuppetDB.
factsOutput facts for a specific node (json)
nodesOutput all nodes (json)
resourcesOutput all resources for a specific node (json)
dumpfactsDump all facts to
snapshotCreate a test DB from the current DB
addfactsAdds facts to the test DB for the given node name, if they are not already defined.
--versionOutput version information and exit.
Supported version puppet 4 is mostly supported. Please look at the list of issues for details.
Custom ruby functions The tool might bark when resolving custom ruby functions. These function can easily be mocked or implemented in Haskell if necessary.
requirefunction is not supported (see issue #17)
- the deprecated
importfunction is not supported
- the deprecated node inheritance feature is not supported
OS Linux is the default OS. The tool has also been successfully installed and used on
OS X. Windows is not supported.