Skip to content
View peterwwillis's full-sized avatar
Block or Report

Block or report peterwwillis

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
peterwwillis/README.md

👋 Hello! My name is Peter, and I write code.

I've been involved in open-source development for about 20 years. In that time I've written custom software, started open-source projects, and contributed to Linux distributions and other FOSS projects. I've also created and maintained thousands of FOSS software packages for corporate Linux distributions.

🔭 I’m currently working on ...


Some of my projects have been lost to time, and some are closed-source, but below is some of the FOSS stuff I could still find.

Programming

Helm

  • docker-in-docker - A Helm chart to install a Docker-in-Docker service in a Kubernetes cluster

Python

  • dump-google-keep-notes - Dumps Google Keep to Markdown files with front matter for the metadata.
  • bump-version-yaml - Bump the version number in a YAML file, using a schema file to determine what part of the YAML gets updated, and how.
  • fix-atlassian-links - Simple search and replace on Confluence pages.
  • junkdrawer - Small miscellaneous scripts.

Shell

  • Terraformsh - A wrapper for Terraform to provide hierarchical, DRY terraform configs, and sane best-practices. Simpler than Terragrunt.
  • packersh - Like the Terraform wrapper, but for Packer.
  • jenkins-bootstrap.sh - Ever needed to set up Jenkins? This script will do everything for you as code according to best practices.
  • attach_ebs.sh - Ever needed to attach an EBS volume to an EC2 instance at boot time?
  • direnvsh - Ever wanted to run a command while inheriting environment variables recursively from a reverse hierarchy?
  • repeat.sh - Ever wanted to run a couple commands over and over again with some added features?
  • patch-solr-log4j - If When Log4j vulnerability comes back, patch it quickly.
  • jenkins-plugin-manager - Jenkins's new plugin manager doesn't resolve dependencies properly.
  • newrelic_api_cli - NewRelic didn't used to support their whole API in Terraform, so you still had to script stuff directly.
  • twoman.sh - An example of a two-man authentication file crypto system.
  • test.sh - A minimal test framework in Bourne Shell.
  • clinst - Download and install statically-compiled programs, and then select specific versions of them to run from different directories.
  • junkdrawer - Small miscellaneous scripts.

Perl

  • create-dvd - Command-line wrapper to make it easier to burn a video DVD
  • findphonewords.pl - Find English words in phone numbers
  • ldapcachder.pl - A rudimentary LDAP proxy. Caches and pools connections to an LDAP server so you don't hit connection limits.
  • print_network_map.pl - Given an NMAP XML file, print a list of all the routes and hosts found.
  • pop3download.pl - A POP3 and IMAPv4 mail fetcher. Like Fetchmail, but less buggy.
  • user_login.pl - User authentication for OpenVPN.
  • bluelock.pl - Lock a desktop when a Bluetooth device goes out of range.
  • deldupes.pl - Delete duplicate files
  • dumpfd.pl - Dump the file descriptors of a running process
  • encsh.pl - Turn any interpreted script into an encrypted program that never stores its source code on disk
  • meminfo.pl - Summarize memory use of Linux processes
  • piratespeak.pl - Substitute words and phrases with pirate speak
  • dynamic-dnsmasq.pl - A Dynamic DNS HTTP API backend. It allows dnsmasq to be updated via a Dynamic DNS client. One of the first pieces of OSS code I wrote.
  • junkdrawer - Small miscellaneous scripts.

C code

  • etherdump - A tiny tcpdump, with no dynamic memory. Packet processing is built-in, not from libpcap. Useful on embedded machines, or just to learn about tcp/ip protocols.
  • ddnsu - A Dynamic DNS update client supporting No-IP and DynDNS. Pretty small, suitable for embedded environments.
  • eject - The eject applet for Busybox

Pinned

  1. clinst clinst Public

    Install and manage multiple versions of command-line tools in a user's home directory

    Shell

  2. devopsyoga-content devopsyoga-content Public

    A Git repository for the Devops.yoga Wiki content

    Python 7

  3. etherdump etherdump Public

    Tiny tcp/ip ethernet network protocol sniffer in C

    C 2

  4. bump-version-yaml bump-version-yaml Public

    Programmatically bump version number strings in YAML files

    Python

  5. squidinacan squidinacan Public

    A Squid caching web proxy in a Docker container

    Shell

  6. Comparison of cloud storage vendor p... Comparison of cloud storage vendor prices
    1
    ,Linode,DigitalOcean,UpCloud,OVHCloud,Vultr,IBMCloud,Wasabi,Backblaze,AWS S3,Azure,GoogleCloud,Rackspace
    2
    Prices,https://www.linode.com/products/object-storage/,https://www.digitalocean.com/pricing/#spaces-object-storage,,https://www.ovhcloud.com/asia/public-cloud/prices/#439,https://www.vultr.com/products/object-storage/#pricing,https://cloud.ibm.com/objectstorage/create#pricing,https://wasabi.com/cloud-storage-pricing/pricing-faqs/,https://www.backblaze.com/b2/cloud-storage-pricing.html,,,,https://www.rackspace.com/openstack/public/pricing
    3
    ,,,,,,,,,,,,
    4
    TrafficIncoming,included,included,,included,included,,included,,,,,
    5
    TrafficOutgoing,1TB + 0.01 per GB,1TB + 0.01 per GB,,$11 per 1 TB,1 TB + 0.01 per GB,$90 per 1 TB,included if not exceeding storage amount,$10 per 1 TB,$90 per 1 TB,$87 per 1 TB,$120 per 1 TB,$120 per 1 TB