tkldev-detective is a simple framework for linting turnkeylinux appliances, it leverages existing linting tools, as well as allowing for custom handmade lints and provides a unified output format/interface for utilizing these tools.
Mandatory Dependencies:
apt-file - for figuring out what packages provide certain files
Highly Recommended (but optional) Dependencies:
shellcheck - enables bash lints pylint - enables python lints
Optional Dependencies:
python3-yaml - enables yaml lint
tkldev-detective can be installed as follows
Clone somewhere, I recommend cloning into
/turnkey/public
(creating intermediate directories as required)mkdir -p /turnkey/public git clone [email protected]:turnkeylinux/tkldev-detective /turnkey/public/tkldev-detective
Add
tkldev-detective
to your path:ln -s /turnkey/public/tkldev-detective/tkldev-detective /usr/local/bin
Using tkldev-detective
is as simple as running
tkldev-detective lint <appliance>
where <appliance>
can be:
- the name of an appliance
- the path to an appliance
- the path to a specific file in an appliance
All of this provided you have the given appliance's build code on your machine.
E.g.
tkldev-detective lint zoneminder
tkldev-detective supports color highlighting and will attempt to detect whether
the stdout supports color (check for a terminal). This behavior can be changed
with the --color=always/never/auto
option where:
auto
provides default behavioralways
always enables colornever
disables color entirely
For more information on how it works and how to develop more functionality, see overview, custom modules and tools and tricks
This file is part of tkldev-detective.
tkldev-detective is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
tkldev-detective is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with tkldev-detective. If not, see <https://www.gnu.org/licenses/>.