Skip to main content

Personal script library solving problems you didn't know you cared about

Project description

DSBin

PyPI version Python versions PyPI downloads License

This is my personal collection of Python scripts, built up over many years of solving problems most people don't care about (or don't know they care about… until they discover my scripts).

Script List

Meta Scripts

  • dsver: Show installed versions of my packages.
  • lsbin: Lists executable files and their descriptions based on docstrings. What you're looking at now.

File Management

  • backupsort: Sorts saved backup files by adding a timestamp suffix to the filename.
  • bigfiles: Finds the top N file types in a directory by cumulative size.
  • dupefinder: Find duplicate files in a directory.
  • fml: Uploads a file to Fastmail's file storage using WebDAV.
  • foldermerge: Tries to merge two folders, accounting for duplicates and name conflicts.
  • rsyncer: Build an rsync command interactively.
  • workcalc: Calculate how much time went into a project.

Text Processing Scripts

  • pycompare: Compare two lists and output common/unique elements.
  • w11renamer: Generates non-stupid filenames for Windows 11 ISO files from stupid ones.

Media Scripts

  • ffgif: Converts a video file to a GIF using ffmpeg.
  • fftrim: Use ffmpeg to trim a video file without re-encoding.
  • ytdl: Custom yt-dlp command to ensure highest quality MP4.

Music Scripts

  • aif2wav, wav2aif: Convert AIFF to WAV or WAV to AIFF, with optional Logic metadata.
  • alacrity: Converts files in a directory to ALAC, with additional formats and options.
  • hpfilter: Apply a highpass filter to cut bass frequencies for HomePod playback.
  • metacopy: Copy audio metadata from a known file to a new file.
  • mp3ify: Converts files to MP3.
  • mshare: A script for sharing music bounces in a variety of formats.
  • pybounce: Uploads audio files to a Telegram channel.
  • rmp3: Removes MP3 files if there is an AIFF or WAV file with the same name.
  • wpmusic: Uploads and replaces song remixes on WordPress.

Mac Scripts

  • dmg-encrypt: Encrypts DMG files with AES-256 encryption.
  • dmgify: Creates DMG files from folders, with specific handling for Logic projects.
  • mvdmg: Recursively moves nested DMG files to a desired location.
  • netreset: macOS network reset script.
  • pkginst: Wrapper for the macOS Installer command-line utility.
  • setmag: Set MagSafe light according to power status.
  • spacepurger: Generate large files to fill the disk and free up purgeable space.
  • timestamps: Quick and easy timestamp getting/setting for macOS.

Logic Pro Scripts

  • bipclean: Identify and delete recently created AIFF files (default 2 hours).
  • bouncefiler: Sort files into folders based on filename suffix.
  • bounceprune: Prunes and consolidates bounces from Logic projects.
  • bounces: CLI tool for working with Logic bounce files using BounceParser.
  • oldprojects: Moves old Logic projects out of folders then deletes empty folders.

System Tools

  • changehostname: Changes the system hostname in all the relevant places.
  • dockermounter: Checks to see if mount points are mounted, and act accordingly.
  • dsservice: Main function for managing systemd services.
  • dsupdater: Comprehensive update installer for Linux and macOS.
  • dsupdater-install: Entry point for installer.
  • envsync: Synchronize two .env files by merging their content.
  • ssh-tunnel: Create or kill an SSH tunnel on the specified port.
  • watchtower: Script to help with running Watchtower for Docker.

Development Scripts

  • changelog: Update CHANGELOG.md with a new version and automatically manage links.
  • checkdeps: Check all interdependencies between dsbin and dsbin.
  • checkimports: Check for circular imports in a Python project.
  • codeconfigs: Download configs for coding tools and compare against local versions.
  • impactanalyzer: Analyze the impact of changes in repositories and their dependencies.
  • packageanalyzer: Analyze package dependencies and generate an import graph.
  • poetry-migrate, uvmigrate: Process pyproject.toml file(s) based on command line arguments.
  • pybumper: Version management tool for Python projects.
  • pyenversioner: Updates .python-version files recursively.
  • reporun: Package management utility for working with multiple Poetry projects.
  • rereadme: Update README.md with the latest script list from lsbin.
  • scriptdep: Analyze dependencies and imports across scripts to help separate concerns.
  • tagreplace: Replace an existing Git tag with a new tag name and description.

License

This project is licensed under the LGPL-3.0 License. See the LICENSE file for details.

Contributions welcome! Please feel free to submit a pull request!

Release history Release notifications | RSS feed

This version

0.7.3

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dsbin-0.7.3.tar.gz (160.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dsbin-0.7.3-py3-none-any.whl (230.2 kB view details)

Uploaded Python 3

File details

Details for the file dsbin-0.7.3.tar.gz.

File metadata

  • Download URL: dsbin-0.7.3.tar.gz
  • Upload date:
  • Size: 160.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for dsbin-0.7.3.tar.gz
Algorithm Hash digest
SHA256 f524ddf03d12fe738ad7da800eaa10476e8657516fdd1156dccd73a56667a193
MD5 b9f4b8aa70cf99919cb5acf90a1ef979
BLAKE2b-256 a9f21beae0127ca7cb6d7fea1f4ed8c9cfcb49ccd4a6a071fe6b88f09f654de6

See more details on using hashes here.

Provenance

The following attestation bundles were made for dsbin-0.7.3.tar.gz:

Publisher: python-publish.yml on dannystewart/dsbin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dsbin-0.7.3-py3-none-any.whl.

File metadata

  • Download URL: dsbin-0.7.3-py3-none-any.whl
  • Upload date:
  • Size: 230.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for dsbin-0.7.3-py3-none-any.whl
Algorithm Hash digest
SHA256 365d9fa033f4d6038a1d967ee96f7199ba4033784490ede82b6cfaf606658740
MD5 6d91a37d3bea580b31a6e4e88919c1b3
BLAKE2b-256 0edd4c960f7b756c34d9adce2a4f69005f2c7321647b08bd69896fc2e5eca2dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for dsbin-0.7.3-py3-none-any.whl:

Publisher: python-publish.yml on dannystewart/dsbin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page