]> us-delaporte.pagekite.me Git - dotfiles.git/blobdiff - bin/dot
Add help text to dot link
[dotfiles.git] / bin / dot
diff --git a/bin/dot b/bin/dot
index a59d80d3ff868e77b7fa16c8beabd8069f7c4480..4e21e72397c556d8b1a73fc9833242bc0f6edac9 100755 (executable)
--- a/bin/dot
+++ b/bin/dot
 #              apply all added ROLES
 
 # set -v
-#
+
+ENVS="$HOME/envs"
+ANSIBLE="$ENVS/ansible/bin/ansible-playbook"
+TASKFILE="$HOME/dot.$HOSTNAME.yaml"
+
+read -d '' EMPTY_TASKFILE << EOF
+---
+- name: Set up dotfiles on $HOSTNAME
+  gather_facts: no
+  hosts: localhost
+  connection: local
+
+  tasks:
+               - name: Do nothing
+      ansible.builtin.shell: echo "Nothing to do."
+EOF
+
+
 if [ "$1" == "setup" ]; then
-  if [[ ! -d $HOME/envs/ansible ]]; then
-               mkdir -p "$HOME/envs"
+  if [[ ! -f "$ANSIBLE" ]]; then
+               mkdir -p "$ENVS"
                echo "Setting up Ansible in ~/envs/ansible"
                cd $HOME/envs; python3 -m venv ansible
-               $HOME/envs/ansible/bin/pip install ansible
+               $HOME/envs/ansible/bin/pip install ansible jinja2
+       fi
+  if [[ -f "$ANSIBLE" ]]; then
+               echo "[ ok ]: Ansible setup at $ANSIBLE"
+       fi
+  if [[ ! -f "$TASKFILE" ]]; then
+               echo "Creating $TASKFILE"
+               echo "$EMPTY_TASKFILE" >> $TASKFILE
        fi
-  if [[ -d $HOME/envs/ansible ]]; then
-               echo "[ ok ]: ~/envs/ansible"
+  if [[ -f "$TASKFILE" ]]; then
+               echo "[ ok ]: dot config at $TASKFILE"
        fi
 fi
 
+if [ "$1" == "reset" ]; then
+       read -n1 -p "Reset $TASKFILE? [y,N]" input
+       if [[ ! $input == "Y" && ! $input == "y" ]]; then
+               echo "Aborted by user"
+               exit 1
+       fi
+       echo "$EMPTY_TASKFILE" > $TASKFILE
+fi
+
+
 if [ "$1" == "check" ]; then
-  echo "check"
+       $ANSIBLE $TASKFILE --check --diff
 fi
 
 if [ "$1" == "list" ]; then
   echo "May symlink:"
        cd $HOME/dotfiles/files
        ls -p | grep -v /
+fi
+
+
+
+
+
+if [ "$1" == "link" ]; then
+       if [ ! -n "$2" ]; then
+               echo "May symlink:"
+               cd $HOME/dotfiles/files
+               ls -p | grep -v /
+       fi
 
+read -d '' LINK_FILE << EOF
+---
+  tasks:
+               - name: Create a symbolic link
+                       ansible.builtin.file:
+                               src: /file/to/link/to
+                               dest: /path/to/symlink
+                               owner: foo
+                               group: foo
+                               state: link
+EOF
 
 fi