Add makefile, run tests during package build
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..fc83783
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,26 @@
+DESTDIR=/
+SALTENVDIR=/usr/share/salt-formulas/env
+RECLASSDIR=/usr/share/salt-formulas/reclass
+FORMULANAME=$(shell grep name: metadata.yml|head -1|cut -d : -f 2|grep -Eo '[a-z0-9\-]*')
+
+all:
+	@echo "make install - Install into DESTDIR"
+	@echo "make test    - Run tests"
+	@echo "make clean   - Cleanup after tests run"
+
+install:
+	# Formula
+	[ -d $(DESTDIR)/$(SALTENVDIR) ] || mkdir -p $(DESTDIR)/$(SALTENVDIR)
+	cp -a $(FORMULANAME) $(DESTDIR)/$(SALTENVDIR)/
+	[ ! -d _modules ] || cp -a _modules $(DESTDIR)/$(SALTENVDIR)/
+	[ ! -d _states ] || cp -a _states $(DESTDIR)/$(SALTENVDIR)/ || true
+	# Metadata
+	[ -d $(DESTDIR)/$(RECLASSDIR)/service/$(FORMULANAME) ] || mkdir -p $(DESTDIR)/$(RECLASSDIR)/service/$(FORMULANAME)
+	cp -a metadata/service/* $(DESTDIR)/$(RECLASSDIR)/service/$(FORMULANAME)
+
+test:
+	[ ! -d tests ] || (cd tests; ./run_tests.sh)
+
+clean:
+	[ ! -d tests/build ] || rm -rf tests/build
+	[ ! -d build ] || rm -rf build
diff --git a/debian/control b/debian/control
index ce2b461..0b3b336 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,7 @@
 Maintainer: Ales Komarek <ales.komarek@tcpcloud.eu>
 Section: admin
 Priority: optional
-Build-Depends: debhelper (>= 9)
+Build-Depends: debhelper (>= 9), salt-master, python, python-yaml
 Standards-Version: 3.9.6
 Homepage: http://www.tcpcloud.eu
 Vcs-Browser: https://github.com/tcpcloud/salt-formula-linux
diff --git a/debian/install b/debian/install
deleted file mode 100644
index aaeeacc..0000000
--- a/debian/install
+++ /dev/null
@@ -1,2 +0,0 @@
-linux/*             /usr/share/salt-formulas/env/linux/
-metadata/service/*      /usr/share/salt-formulas/reclass/service/linux/
diff --git a/linux/system/console.sls b/linux/system/console.sls
index bba8c1c..3112bc5 100644
--- a/linux/system/console.sls
+++ b/linux/system/console.sls
@@ -5,7 +5,7 @@
 
 {%- for tty_name, console in system.console.iteritems() %}
 
-{%- if grains['init'] == 'upstart' %}
+{%- if grains.get('init', None) == 'upstart' %}
 {{ tty_name }}_service_file:
   file.managed:
     - name: /etc/init/{{ tty_name }}.conf
diff --git a/tests/run_tests.sh b/tests/run_tests.sh
index 1f1316f..4676926 100755
--- a/tests/run_tests.sh
+++ b/tests/run_tests.sh
@@ -69,6 +69,7 @@
   base:
   - ${SALT_FILE_DIR}
   - ${CURDIR}/..
+  - /usr/share/salt-formulas/env
 
 pillar_roots:
   base:
@@ -78,16 +79,17 @@
 }
 
 fetch_dependency() {
-    dep_root="${DEPSDIR}/$(basename $1 .git)"
+    dep_name="$(echo $1|cut -d : -f 1)"
+    dep_source="$(echo $1|cut -d : -f 2)"
+    dep_root="${DEPSDIR}/$(basename $dep_source .git)"
     dep_metadata="${dep_root}/metadata.yml"
 
-    [ -d $dep_root ] && log_info "Dependency $1 already fetched" && return 0
+    [ -d /usr/share/salt-formulas/env/${dep_name} ] && log_info "Dependency $dep_name already present in system-wide salt env" && return 0
+    [ -d $dep_root ] && log_info "Dependency $dep_name already fetched" && return 0
 
-    log_info "Fetching dependency $1"
+    log_info "Fetching dependency $dep_name"
     [ ! -d ${DEPSDIR} ] && mkdir -p ${DEPSDIR}
     git clone $1 ${DEPSDIR}/$(basename $1 .git)
-
-    dep_name=$(cat $dep_metadata | python -c "import sys,yaml; print yaml.load(sys.stdin)['name']")
     ln -s ${dep_root}/${dep_name} ${SALT_FILE_DIR}/${dep_name}
 
     METADATA="${dep_metadata}" install_dependencies
@@ -98,7 +100,7 @@
     (python - | while read dep; do fetch_dependency "$dep"; done) << EOF
 import sys,yaml
 for dep in yaml.load(open('${METADATA}', 'ro'))['dependencies']:
-    print dep["source"]
+    print '%s:%s' % (dep["name"], dep["source"])
 EOF
 }
 
@@ -108,14 +110,14 @@
 }
 
 salt_run() {
-    source ${VENV_DIR}/bin/activate
+    [ -e ${VEN_DIR}/bin/activate ] && source ${VENV_DIR}/bin/activate
     salt-call ${SALT_OPTS} $*
 }
 
 prepare() {
     [ -d ${BUILDDIR} ] && mkdir -p ${BUILDDIR}
 
-    setup_virtualenv
+    which salt-call || setup_virtualenv
     setup_pillar
     setup_salt
     install_dependencies