{"id":14156178,"url":"https://github.com/sudorook/misc-scripts","last_synced_at":"2025-04-11T16:52:38.336Z","repository":{"id":54469154,"uuid":"105379047","full_name":"sudorook/misc-scripts","owner":"sudorook","description":"Various command line scripts that make my life easier.","archived":false,"fork":false,"pushed_at":"2025-02-01T22:52:20.000Z","size":931,"stargazers_count":15,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-25T12:53:39.918Z","etag":null,"topics":["beets-scripts","ffmpeg-wrapper","misc","miscellaneous-scripts","utilities","utitlities"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sudorook.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSES/GPL-3.0-or-later.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-30T15:22:29.000Z","updated_at":"2025-02-01T22:52:23.000Z","dependencies_parsed_at":"2023-02-17T12:01:17.148Z","dependency_job_id":"c81a23b2-fa66-413a-9f7c-01ccc690451e","html_url":"https://github.com/sudorook/misc-scripts","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudorook%2Fmisc-scripts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudorook%2Fmisc-scripts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudorook%2Fmisc-scripts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudorook%2Fmisc-scripts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sudorook","download_url":"https://codeload.github.com/sudorook/misc-scripts/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248443345,"owners_count":21104390,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["beets-scripts","ffmpeg-wrapper","misc","miscellaneous-scripts","utilities","utitlities"],"created_at":"2024-08-17T08:05:16.212Z","updated_at":"2025-04-11T16:52:38.313Z","avatar_url":"https://github.com/sudorook.png","language":"Shell","readme":"# Miscellaneous scripts\n\n| Script             | Description                                                            |\n| ------------------ | ---------------------------------------------------------------------- |\n| `add-subtitles`    | embed srt files into video                                             |\n| `allow-ip`         | add rule to routing table for an IP address (e.g. a local printer)     |\n| `alphabetize`      | sorts line alphabetically and deletes repeats                          |\n| `archive`          | tar a directory and output to ~/Desktop with a unique filename         |\n| `backup`           | backup home directory to external drive (up to 2 backups at once)      |\n| `battery-notify`   | use `notify-send` to display when the battery level is too high or low |\n| `cleanup`          | wrapper script for cleanup programs                                    |\n| `clipify`          | cut clips out of videos                                                |\n| `copy-playlist`    | copy files in a playlist (e.g. m3u) to a destination directory         |\n| `count-commits`    | count commits made by an author over specified period of time          |\n| `count-lines`      | count number of lines in all files in directory                        |\n| `coverart`         | embeds or remove images in audio files                                 |\n| `cryptdir`         | wrapper for mounting/unmounting fs-level encrypted directories         |\n| `decode-base64`    | detect and convert base64 text in emails to UTF-8                      |\n| `delete-swp`       | clear sw[a-p] files in directory (Vim backups)                         |\n| `drop-caches`      | clear system cache                                                     |\n| `dump-streams`     | copy container streams into one file each                              |\n| `embed-script`     | combine executable script and source dependencies into one file        |\n| `epub-convert`     | `ebook-convert` wrapper to convert azw3 and mobi files to ePub         |\n| `epub-fixup`       | disable `text-align: justify` and hardcoded colors in EPUB files       |\n| `extract-audio`    | extract audio track from video                                         |\n| `extract-subs`     | extract all subtitle streams from video                                |\n| `format`           | format source code with language-specific tools                        |\n| `gen-playlist`     | generate playlists based on beets database                             |\n| `get-song`         | download song (audio) from URL and set ID3v2 metadata                  |\n| `get-webseries`    | `youtube-dl` wrapper to download web series / playlists / etc.         |\n| `gifify`           | generate a GIF from part of a video                                    |\n| `git-archive`      | simple wrapper for git archive                                         |\n| `git-clone-all`    | clone all repositories of a GitHub user/organization                   |\n| `git-gc`           | prune orphaned objects and force garbage collection                    |\n| `git-init`         | wrapper script for initializing a Git repo and setting the metadata    |\n| `git-partial-push` | push commits up to a given date                                        |\n| `join-vids`        | concatenate videos                                                     |\n| `kvm-clear`        | clear out shared KVM directory                                         |\n| `kvm-cp`           | copy file to shared KVM directory                                      |\n| `kvm-ls`           | list files in shared KVM directory                                     |\n| `kvm-mv`           | move file to shared KVM directory                                      |\n| `list-ass-fonts`   | list all the fonts referenced in a subtitle file or directory          |\n| `make-watch`       | re-run `make` when files changes are written                           |\n| `mpv-play`         | play media above a duration cutoff                                     |\n| `mpv-ssh`          | search remote directories over SSH and pipe as playlist to mpv         |\n| `nm-ovpn-delete`   | delete OpenVPN connections via `nmcli`                                 |\n| `nm-ovpn-import`   | `nmcli` wrapper for importing an OpenVPN configuration file            |\n| `nm-wg-delete`     | delete all WireGuard connection definitions using Network Manager      |\n| `nm-wg-import`     | import a WireGuard configuration file using Network Manager            |\n| `ova-to-qcow2`     | convert an OVA virtual disk image to QCOW2                             |\n| `pdf-fixup`        | fix up the metadata in PDF files (newlines in tags, covers, etc.)      |\n| `pdf-split`        | extract range of pages from a PDF                                      |\n| `ping-test`        | use `ping` to estimate network speed                                   |\n| `print-colors`     | print terminal colors                                                  |\n| `print-fontstring` | generate the FFmpeg format string to embed fonts in a container        |\n| `quickdate`        | wrapper for generating date strings based on a specified offset        |\n| `rank-mirrorlist`  | rank all servers listed in /etc/pacman.d/mirrorlist                    |\n| `rate-song`        | write song rating metadata to beets database                           |\n| `reencode`         | convert video's encoding                                               |\n| `rename-user`      | rename an existing user and migrate all files, symlinks, etc.          |\n| `render`           | compile LaTeX, RMarkdown and Julia Markdown files to PDF               |\n| `restart-network`  | restart network connection (for getting new MAC address)               |\n| `rmlink`           | delete symlink and the file it references                              |\n| `rotate`           | rotate the screen with `xrandr` and switch background theme            |\n| `scourify`         | wrapper to scour for simplifying SVG files                             |\n| `search-docs`      | find documents, with option to pin to ~/Desktop and ~/Sync             |\n| `seek-and-destroy` | find and delete pesky dotfiles and dot-directories                     |\n| `set-gdm-theme`    | overwrite the GDM theme with the CSS in the current GTK theme          |\n| `set-replaygain`   | compute replay gain for directory of audio files                       |\n| `shrink-vm`        | resize a qcow2 image                                                   |\n| `split-cue`        | use a CUE file to split a single large audio file into MP3 components  |\n| `strip-audio`      | use `ffmpeg` to strip metadata from FLAC and MP3 files                 |\n| `strip-metadata`   | remove metadata from MKV and MP4 containers and streams                |\n| `strip-yaml`       | strip YAML front matter from text file                                 |\n| `swapfile`         | create or destroy swapfile                                             |\n| `swap-symlink`     | switch around a symlink and its reference location                     |\n| `switch-theme`     | switch GTK or icon theme (and edit Vim/UI settings accordingly)        |\n| `torrentstat-sync` | synchronize statistics between Transmission and qBittorrent            |\n| `upgrade`          | upgrade system, AUR, Zsh plugins, and Julia packages                   |\n| `vidname-cleanup`  | use regex to clean up file names                                       |\n| `vpn-killswitch`   | add `iptables` rules to block networking if VPN connection is lost     |\n| `wget-mirror`      | `wget` wrapper to create local mirror of website                       |\n| `whattodo`         | find all to-do lists and print them in the terminal                    |\n| `write-entry`      | write a entry into your log                                            |\n| `wsl-browser-open` | open a file in WSL using the default host web browser                  |\n\n## Globals\n\nThe `globals` file contains global variables that need to be set before running\nspecific scripts.\n\n| Variable          | Description                                     | Required By                                     |\n| ----------------- | ----------------------------------------------- | ----------------------------------------------- |\n| archivedir        | destination for archive files                   | `archive`                                       |\n| backup1           | path to backup destination device               | `backup`                                        |\n| backup2           | path of device to mirror backup1                | `backup`                                        |\n| calibrelibrarydir | path to Calibre library directory               | `search-docs`                                   |\n| kvmdir            | directory containing KVM images                 | `backup`                                        |\n| kvmshare          | shared (host \u003c--\u003e guest) KVM directory          | `kvm-clear`, `kvm-cp`, `kvm-ls`, `kvm-mv`       |\n| vboxdir           | directory with VirtualBox configs and images    | `backup`                                        |\n| encryptpath       | encrypted EncFS store (source)                  | `cryptdir`                                      |\n| decryptpath       | decrypted EncFS store (destination)             | `cryptdir`                                      |\n| gtkdir            | directory that contains sources for GTK themes  | `upgrade`                                       |\n| plasmadir         | directory containing Plasma themes source repos | `upgrade`                                       |\n| icondir           | directory that contains sources for icon themes | `upgrade`                                       |\n| thunderbirddir    | path to Thunderbird profile directory           | `upgrade`                                       |\n| zshdir            | where Zsh themes are downloaded                 | `upgrade`                                       |\n| pkgbuilddir       | where AUR pkgbuilds are stored                  | `seek-and-destroy`, `upgrade`                   |\n| projectdir        | directory containing Git repos and projects     | `count-commits`, `seek-and-destroy`, `whattodo` |\n| musicdir          | directory containing music files                | `copy-playlist`                                 |\n| videodir          | directory for video files                       | `get-webseries`                                 |\n| ignoreprojectdirs | list of directories in projectdir to ignore     | `whattodo`                                      |\n| zoterodatadir     | location of Zotero data (not config) directory  | `search-docs`                                   |\n","funding_links":[],"categories":["others"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsudorook%2Fmisc-scripts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsudorook%2Fmisc-scripts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsudorook%2Fmisc-scripts/lists"}