{
	util,
	pkgs,
	...
} @args: let
	modules     = util.catText (util.ls ./module) args;
	modulesFile = pkgs.writeText "BashModules" modules;
in {
	inherit modules modulesFile;

	bashrc = modules + ''
		# Find all functions.
		function find_function() {
			/usr/bin/env cat ${modulesFile} | /usr/bin/env grep "^function.*()" | /usr/bin/env sed -e "s/^function //" -e "s/().*//"
		}

		# Export all functions.
		export -f $(find_function | tr '\n' ' ')
		export -f find_function

		# Autostart Sway.
		if [[ -z $DISPLAY ]] && [[ "$(tty)" = "/dev/tty1" ]]; then
			exec sway
		fi
	'';

	# bash_profile = ''
	#   # Home manager.
	#   [ -e ~/.nix-profile/etc/profile.d/nix.sh ] && source ~/.nix-profile/etc/profile.d/nix.sh

	#   # Bashrc.
	#   [ -f ~/.bashrc ] && source ~/.bashrc

	#   # Profile.
	#   [ -f ~/.profile ] && source ~/.profile
	# '';

	# profile = ''
	#   # Load HM vars.
	#   [ -e ~/.nix-profile/etc/profile.d/hm-session-vars.sh ] && source ~/.nix-profile/etc/profile.d/hm-session-vars.sh
	# '';
}