+ echo "Run 'dot apply' to create all configured symlinks"
+fi
+
+if [ "$1" == "apply" ]; then
+ if [[ ! -f "$TASKFILE" ]]; then
+ echo "$TASKFILE is missing. Run 'dot setup'"
+ exit 1
+ fi
+ $ANSIBLE -v $TASKFILE
+fi
+
+if [ "$1" == "install" ]; then
+ if [ ! -n "$2" ]; then
+ echo "Can install: (.sh scripts in $INSTALLS)"
+ cd $INSTALLS
+ ls -p | grep -v / | grep .sh
+ exit 1
+ fi
+ if [[ ! -f "$INSTALLS/$2.sh" ]]; then
+ echo "No such install script $INSTALLS/$2.sh"
+ echo "Run dot install with no params to list scripts."
+ exit 1
+ fi
+
+mkdir -p $DOT
+read -d '' RUN_INSTALL << EOF
+ - name: check $2
+ stat:
+ path: "$DOT/$2.installed"
+ register: $2_installed
+ - name: install $2
+ ansible.builtin.shell: |
+ "$INSTALLS/$2.sh" && touch "$DOT/$2.installed"
+ register: ret
+ failed_when: >
+ ("Error" in ret.stdout) or
+ (ret.stderr != '') or
+ (ret.rc != 10)
+ when: not $2_installed.stat.exists
+ - name: verify $2 is installed
+ ansible.builtin.debug:
+ msg: "$2 is installed."
+ when: $2_installed.stat.exists
+EOF
+ echo " $RUN_INSTALL" >> $TASKFILE
+ echo "Run 'dot apply' to run the install"
+fi
+
+
+if [ "$1" == "env" ]; then
+ if [ ! -n "$2" ]; then
+ echo "Can create: (.txt files in $REQS)"
+ cd $REQS
+ ls -p | grep -v / | grep .txt
+ exit 1
+ fi
+ if [[ ! -f "$REQS/$2.txt" ]]; then
+ echo "No such requirements file script $REQS/$2.txt"
+ echo "Run dot env with no params to list files."
+ exit 1
+ fi
+
+read -d '' ADD_ENV << EOF
+ - name: check env $2
+ stat:
+ path: "$ENVS/$2"
+ register: $2_path
+ - name: add env $2
+ ansible.builtin.shell: |
+ cd $ENVS
+ python3 -m venv $2
+ $ENVS/$2/bin/python -m pip install -r $REQS/$2.txt
+ when: not $2_path.stat.exists
+ - name: verify env $2 exists
+ ansible.builtin.debug:
+ msg: "env $2 exists"
+ when: $2_path.stat.exists
+EOF
+ echo " $ADD_ENV" >> $TASKFILE
+ echo "Run 'dot apply' to run the install"