1
0
mirror of https://github.com/deadc0de6/dotdrop.git synced 2026-02-04 17:24:46 +00:00

Merge pull request #109 from SirAiedail/feature/jinja-helper-exists-in-path

Add jinja helper to test executable in PATH
This commit is contained in:
deadc0de
2019-03-24 18:19:48 +01:00
committed by GitHub
3 changed files with 22 additions and 0 deletions

View File

@@ -6,8 +6,14 @@ jinja2 helper methods
"""
import os
import shutil
def exists(path):
"""return true when path exists"""
return os.path.exists(os.path.expandvars(path))
def exists_in_path(name, path=None):
"""return true when executable exists in os path"""
return shutil.which(name, os.F_OK | os.X_OK, path) is not None

View File

@@ -49,6 +49,7 @@ class Templategen:
self.env.globals['header'] = self._header
# adding helper methods
self.env.globals['exists'] = jhelpers.exists
self.env.globals['exists_in_path'] = jhelpers.exists_in_path
def generate(self, src):
"""render template from path"""

View File

@@ -83,6 +83,19 @@ echo "{%@@ if exists('/dev/abcdef') @@%}" >> ${tmps}/dotfiles/abc
echo "this should not exist" >> ${tmps}/dotfiles/abc
echo "{%@@ endif @@%}" >> ${tmps}/dotfiles/abc
# test exists_in_path
cat >> ${tmps}/dotfiles/abc << _EOF
{%@@ if exists_in_path('cat') @@%}
this should exist too
{%@@ endif @@%}
_EOF
cat >> ${tmps}/dotfiles/abc << _EOF
{%@@ if exists_in_path('a_name_that_is_unlikely_to_be_chosen_for_an_executable') @@%}
this should not exist either
{%@@ endif @@%}
_EOF
#cat ${tmps}/dotfiles/abc
# install
@@ -92,6 +105,8 @@ cd ${ddpath} | ${bin} install -f -c ${cfg} -p p1 -V
grep '^this should exist' ${tmpd}/abc >/dev/null
grep -v '^this should not exist' ${tmpd}/abc >/dev/null
grep '^this should exist too' ${tmpd}/abc >/dev/null
grep -v '^this should not exist either' ${tmpd}/abc >/dev/null
#cat ${tmpd}/abc