1234567891011121314151617181920212223242526272829303132333435 |
- #!/usr/bin/env bash
- set -o errexit -o pipefail
- logs_directory="$HOME/.local/var/log/firefox"
- mkdir -p "$logs_directory"
- OVERLAY=true
- profile="$(TMPDIR="${HOME}/.local/tmp" mktemp -d -t "firefox.XXXXXXXXXX")"
- FIREFOX_DEFAULT_PROFILE="j56dvo43.default-1520714705340"
- case "$1" in
- "default")
- profile_source_directory="${HOME}/.mozilla/firefox/${FIREFOX_DEFAULT_PROFILE}"
- if [[ $OVERLAY == true ]]
- then
- overlay_rw_directory="$(TMPDIR="${HOME}/.local/tmp" mktemp -d -t "overlay.XXXXXXXXXX")"
- exec &> >(tee -a "${logs_directory}/$(basename overlay_rw_directory).log")
- upper_directory="${overlay_rw_directory}/upper"
- workdir_directory="${overlay_rw_directory}/work"
- trap "set +e; sudo umount '$profile'; rmdir '$profile'; sudo rm -rf '$overlay_rw_directory'" EXIT
- mkdir -p "$upper_directory"
- mkdir -p "$workdir_directory"
- sudo mount -t overlay overlay -o "lowerdir=${profile_source_directory},upperdir=${upper_directory},workdir=${workdir_directory}" "$profile"
- else
- trap 'rm -rf "$profile"' EXIT
- rsync --archive "${profile_source_directory}/" "${profile}/"
- fi
- ;;
- esac
- firefox --new-instance --profile "$profile" "$@"
|