Package: salve
SALVESALVE takes files and directories in a git repository, and handles the messy
process of deploying those files onto a machine.More information is available at theSALVE Website.How do I use it?SALVE is a language, but also a compiler and runtime for that language.
You write “manifests” which describe where your files are meant to go, and
SALVE will do the rest.
The language is small and simple enough that you can learn all of the important
parts in a few minutes, and answer any remaining questions in under half an
hour.To start writing manifests, you can go to theQuick-Start Guide.
For a more detailed description of the SALVE language, theLanguage Pageand theExamples Pageare good resources.Once you have a manifest you want to run, simply dosalve deploywith it.
If you have installed the pip package, you can runsalve deploy –manifest path/to/root.manifestor, if you are using the git repo as your sourcepython SALVE/salve.py deploy –manifest path/to/root.manifestSincedeployis the default action, you could also runsalve -m path/to/root.manifestWhat do I need to run it?SALVE is fully compatible with Python 2.6, 2.7, 3.2, 3.3, 3.4, and 3.5.
It also works on pypy and pypy3.It has no dependencies on other python packages, so as long as you have one of
these versions of Python installed, you can run SALVE.Python 2.6 SupportPython 2.6 is supported, but because OptParse is deprecated in Python 3.x,
SALVE depends uponargparse.To run SALVE with Python 2.6, you will need to install theargparsepackage, or do apiporeasy_installofsalveto pull in the
dependency automatically.RoadmapThe Roadmap has been replaced withGitHub issues.Changelog2.4.2Fix a bug with setting the log levelMake thedeploysubcommand the default when no subcommand is given2.4.1SALVE now uses the python standard library for logging, rather than
custom loggingEntire codebase (including tests) is now PEP8 and passesflake8Significant refactoring to improve Code Climate scoring2.4.0Paths can be expanded relative to the manifest being processed, rather than
relative to the root manifest (this will become the default in version 3)2.3.1Fixes to setuptools usageChange markdown documents to reST2.3.0Support for Python 2.6 (with argparse installed)Primary Attribute style blocksFilesys abstraction layerRemovedSALVE_ROOTautomatic variableRelocateddefault_settings.initosalve/default_settings.iniDefault directory (without override) is directory of root manifest2.2.0Travis and Coveralls integrationImproved internal logging and context handlingSupport for Python 32.1.0Numerous log levels and output controlsDefault attributes, which behave like the old 1.x versioncommonattributesIncreased the context information produced when errors are raisedRegained code coverage in testsMade the codebase PEP8 compliant (as perpep8v1.2)2.0.0Backups are now stored in a flat dir by hash, resolving some dir/file conflict issuesChange to backup logfile timestamp format, more human readableOldpython salve.pyusage is nowpython salve.py deploy, and added stubpython salve.py backupSwitched to argparse – now incompatible with python 2.6.x without librariescommonblock attributes are nowglobal, and have precedence over block-defined attributesAction verification checks and warnings on failures and skips1.1.0Large expansions to the testsuiteNo SALVE actions are performed through the shell anymorePermissions are now checked before actions are executed so that insufficient permissions will not crash the entire runError messages now take the common[filename], line [lineno]: [message]format1.0.3Fixes major bug with dir copy not triggering file backupsInternal refactoring and cleanup in Blocks and Actions1.0.2Fewer actions rely on shell commands and useshutilinsteadUnderspecifying an action no longer causes a failure for chown and chmod, but skips these actions insteadFile create now does atouch-ainstead of atouch, so that access time is changed instead of modified time1.0.1Removed aggressive backups behavior that backed up directories and files on creationImproved error reporting at levels of execution above the parser1.0.0Addition of backups for overwritten filesAddition ofSALVE_USER_PRIMARY_GROUPvariableCompleted test coveragebeta 0.1.0Addition of directory blocksalpha 0.0.2Expansion of relative pathsFixes for configuration templating in blocksChecks EUID before attempting chownalpha 0.0.1Basic functionality for file blocks and manifest blocks