#!/usr/bin/env bash
# It just swaps two files

LD_INTERNAL1
. $(dirname $(realpath $0))/daisy.source

file1=$1
file2=$2

function helpFn()
{
  error=$?
  if [[ $error -gt 0 ]];
  then
    error_text=$(perl -E 'say $!=shift' $error)
    echo "$LD_BIN error ($error): $error_text"
  fi
  echo "Usage: $LD_BIN <file1> <file2>"
  echo Swap two files in a filesystem.
  exit $error
}

if [[ $@ == *"--help"*  ]];
then
  helpFn
elif [[ $@ == '' ]];
then
  echo "No arguments specified."
  helpFn
fi

# We set a trap here, together with 'set -e' above,
# this makes sure we exit gracefully if we have an
# error in one of the ls or mv calls.
trap helpFn ERR

# We want to swap two files
# Easy, but let's be safe about it
ls "$file1" >/dev/null
ls "$file2" >/dev/null

# Files should exist, now we move
mv "$file1" "$file1.sw"
mv "$file2" "$file2.sw"

# We got our moved copies, now we simply rename
mv "$file1.sw" "$file2"
mv "$file2.sw" "$file1"

