Skip to main content

Simplify how I create aliases; add yt-dlp

ID
6058fef
date
2023-11-26 09:37:32+00:00
author
Alex Chan <alex@alexwlchan.net>
parent
e1dbdf8
message
Simplify how I create aliases; add yt-dlp
changed files
4 files, 65 additions, 12 deletions

Changed files

README.md (1493) → README.md (1526)

diff --git a/README.md b/README.md
index 030a51f..b9cb903 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,8 @@
 # scripts
 
 This is a collection of various scripts and tools I find useful.
-I use this Git repository to sync them across multiple computers.
+
+I manage them in a Git repository to ensure I have a consistent setup across different computers.
 
 ## Installation
 

config.fish (2652) → config.fish (3342)

diff --git a/config.fish b/config.fish
index f6bd932..95fd645 100644
--- a/config.fish
+++ b/config.fish
@@ -58,20 +58,47 @@ if [ (uname -s) = Darwin ]
 end
 
 
-# These aliases run scripts in this repo using the virtualenv, rather
+# These functions run scripts in this repo using the virtualenv, rather
 # than running them with system Python.
 #
 # e.g. emptydir.py relies on the `humanize` library.  That isn't installed
 # in my system Python, but it is installed in my `scripts` virtualenv.
 #
-function __run_in_scripts_venv
-    ~/repos/scripts/.venv/bin/python3 ~/repos/scripts/$argv[1] $argv[2..]
+# Useful reading: https://github.com/fish-shell/fish-shell/issues/1776
+
+function __create_bash_script_alias
+    set script_path $argv[1]
+    set shortcut (path basename (path change-extension '' $script_path))
+
+    function $shortcut --inherit-variable script_path
+        source ~/repos/scripts/.venv/bin/activate.fish
+        bash ~/repos/scripts/$script_path $argv
+    end
+end
+
+function __create_python_script_alias
+    set script_path $argv[1]
+    set shortcut (path basename (path change-extension '' $script_path))
+
+    function $shortcut --inherit-variable script_path
+        source ~/repos/scripts/.venv/bin/activate.fish
+        python3 ~/repos/scripts/$script_path $argv
+    end
+end
+
+function __create_python_module_alias
+    set module_name $argv[1]
+
+    eval "alias $module_name=\"~/repos/scripts/.venv/bin/$module_name\""
 end
 
-alias emptydir="__run_in_scripts_venv fs/emptydir.py"
-alias flapi="__run_in_scripts_venv flickr/flapi.sh"
-alias flphoto="__run_in_scripts_venv flickr/flphoto.sh"
-alias kn_cover_image="__run_in_scripts_venv images/kn_cover_image.py"
-alias noplaylist="__run_in_scripts_venv text/noplaylist.py"
-alias reborder="__run_in_scripts_venv images/reborder.py"
-alias srgbify="__run_in_scripts_venv images/srgbify.py"
+__create_bash_script_alias flickr/flapi.sh
+__create_bash_script_alias flickr/flphoto.sh
+
+__create_python_script_alias fs/emptydir.py
+__create_python_script_alias images/kn_cover_image.py
+__create_python_script_alias text/noplaylist.py
+__create_python_script_alias text/reborder.py
+__create_python_script_alias text/srgbify.py
+
+__create_python_module_alias yt-dlp

requirements.in (79) → requirements.in (86)

diff --git a/requirements.in b/requirements.in
index ea92316..b8e8f1d 100644
--- a/requirements.in
+++ b/requirements.in
@@ -7,3 +7,4 @@ Pillow
 pillow_heif
 pip-tools
 termcolor
+yt-dlp

requirements.txt (1188) → requirements.txt (1596)

diff --git a/requirements.txt b/requirements.txt
index c942809..f2cdf8c 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -6,8 +6,16 @@
 #
 black==23.11.0
     # via -r requirements.in
+brotli==1.1.0
+    # via yt-dlp
 build==1.0.3
     # via pip-tools
+certifi==2023.11.17
+    # via
+    #   requests
+    #   yt-dlp
+charset-normalizer==3.3.2
+    # via requests
 click==8.1.7
     # via
     #   black
@@ -19,7 +27,9 @@ humanize==4.9.0
 hyperlink==21.0.0
     # via -r requirements.in
 idna==3.4
-    # via hyperlink
+    # via
+    #   hyperlink
+    #   requests
 jaraco-classes==3.3.0
     # via keyring
 keyring==24.3.0
@@ -28,6 +38,8 @@ mccabe==0.7.0
     # via flake8
 more-itertools==10.1.0
     # via jaraco-classes
+mutagen==1.47.0
+    # via yt-dlp
 mypy-extensions==1.0.0
     # via black
 packaging==23.2
@@ -48,14 +60,26 @@ platformdirs==4.0.0
     # via black
 pycodestyle==2.11.1
     # via flake8
+pycryptodomex==3.19.0
+    # via yt-dlp
 pyflakes==3.1.0
     # via flake8
 pyproject-hooks==1.0.0
     # via build
+requests==2.31.0
+    # via yt-dlp
 termcolor==2.3.0
     # via -r requirements.in
+urllib3==2.1.0
+    # via
+    #   requests
+    #   yt-dlp
+websockets==12.0
+    # via yt-dlp
 wheel==0.41.3
     # via pip-tools
+yt-dlp==2023.11.16
+    # via -r requirements.in
 
 # The following packages are considered to be unsafe in a requirements file:
 # pip