mirror of
https://github.com/deadc0de6/dotdrop.git
synced 2026-02-09 23:59:16 +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:
@@ -6,8 +6,14 @@ jinja2 helper methods
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import shutil
|
||||||
|
|
||||||
|
|
||||||
def exists(path):
|
def exists(path):
|
||||||
"""return true when path exists"""
|
"""return true when path exists"""
|
||||||
return os.path.exists(os.path.expandvars(path))
|
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
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ class Templategen:
|
|||||||
self.env.globals['header'] = self._header
|
self.env.globals['header'] = self._header
|
||||||
# adding helper methods
|
# adding helper methods
|
||||||
self.env.globals['exists'] = jhelpers.exists
|
self.env.globals['exists'] = jhelpers.exists
|
||||||
|
self.env.globals['exists_in_path'] = jhelpers.exists_in_path
|
||||||
|
|
||||||
def generate(self, src):
|
def generate(self, src):
|
||||||
"""render template from path"""
|
"""render template from path"""
|
||||||
|
|||||||
@@ -83,6 +83,19 @@ echo "{%@@ if exists('/dev/abcdef') @@%}" >> ${tmps}/dotfiles/abc
|
|||||||
echo "this should not exist" >> ${tmps}/dotfiles/abc
|
echo "this should not exist" >> ${tmps}/dotfiles/abc
|
||||||
echo "{%@@ endif @@%}" >> ${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
|
#cat ${tmps}/dotfiles/abc
|
||||||
|
|
||||||
# install
|
# install
|
||||||
@@ -92,6 +105,8 @@ cd ${ddpath} | ${bin} install -f -c ${cfg} -p p1 -V
|
|||||||
|
|
||||||
grep '^this should exist' ${tmpd}/abc >/dev/null
|
grep '^this should exist' ${tmpd}/abc >/dev/null
|
||||||
grep -v '^this should not 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
|
#cat ${tmpd}/abc
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user