81 lines
1.8 KiB
Bash
Executable File
81 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
# Copyright (C) 2025 Nicolás Ortega Froysa <nicolas@ortegas.org> All rights reserved.
|
|
# Author: Nicolás Ortega Froysa <nicolas@ortegas.org>
|
|
#
|
|
# This software is provided 'as-is', without any express or implied
|
|
# warranty. In no event will the authors be held liable for any damages
|
|
# arising from the use of this software.
|
|
#
|
|
# Permission is granted to anyone to use this software for any purpose,
|
|
# including commercial applications, and to alter it and redistribute it
|
|
# freely, subject to the following restrictions:
|
|
#
|
|
# 1. The origin of this software must not be misrepresented; you must not
|
|
# claim that you wrote the original software. If you use this software
|
|
# in a product, an acknowledgment in the product documentation would be
|
|
# appreciated but is not required.
|
|
#
|
|
# 2. Altered source versions must be plainly marked as such, and must not be
|
|
# misrepresented as being the original software.
|
|
#
|
|
# 3. This notice may not be removed or altered from any source
|
|
# distribution.
|
|
|
|
CLIP=0
|
|
|
|
if [ $# -lt 1 ]
|
|
then
|
|
>&2 echo "Usage: $0 [-c] <url>"
|
|
exit 1
|
|
fi
|
|
|
|
for arg in "$@"
|
|
do
|
|
case "$arg" in
|
|
-c|--clip)
|
|
CLIP=1
|
|
;;
|
|
-h|--help)
|
|
echo "Usage: $0 [-c] <url>"
|
|
exit 0
|
|
;;
|
|
*)
|
|
URL="$arg"
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [ -z "${URL:-}" ]
|
|
then
|
|
>&2 echo "No URL provided"
|
|
exit 1
|
|
fi
|
|
|
|
YT_URL="${URL//https:\/\/*\//https:\/\/www.youtube.com\/}"
|
|
|
|
if [ $CLIP -eq 0 ]
|
|
then
|
|
echo "$YT_URL"
|
|
else
|
|
if [ "$XDG_SESSION_TYPE" = "wayland" ]
|
|
then
|
|
if ! command -v wl-copy &> /dev/null
|
|
then
|
|
>&2 echo "wl-copy not found, cannot copy to clipboard"
|
|
exit 1
|
|
fi
|
|
echo "$YT_URL" | wl-copy
|
|
else
|
|
if ! command -v xclip &> /dev/null
|
|
then
|
|
>&2 echo "xclip not found, cannot copy to clipboard"
|
|
exit 1
|
|
fi
|
|
echo "$YT_URL" | xclip -sel clip
|
|
fi
|
|
fi
|
|
|