pd supercharges your development workflows
Project description
pd (Product Development and Deployment)
pd is a command-line tool that helps you with various development and deployment tasks.
| Feature | Description | |
|---|---|---|
| 1 | Project initialization (init) |
Quickly initialize new development projects (e.g. FastAPI, Electron etc) |
| 2 | Content downloading (down) |
Download content from the internet (YouTube, Libgen). |
| 3 | File conversion (conv) |
Convert files into other formats (Image, Audio, Video). |
| 4 | EC2 instance management (ec2) |
Manage EC2 instances (launch, terminate). |
| 5 | Image editing (edit) |
Edit images (scale, round, favicon, logo variants etc). |
| 6 | Web utilities (web) |
Inspect or view web pages in the terminal. |
| 7 | Environment management (env) |
Setup and configure development environment (zsh, vim, git, etc). |
| 8 | Nginx management (nginx) |
Manage Nginx configuration files (proxy, static resources). |
See COMMANDS for more details.
Installation
pip install zf-pd
This installs a pd command in your system (even though the package name is zf-pd).
Like other shell tools, pd stores its config in ~/.pdconfig.json.
See CONFIG for more details.
Usage
Initializing a new Project
$ pd init fastapi --name /path/to/fastapi-test
This will create a new FastAPI project called fastapi-test inside /path/to directory.
Downloading a YouTube video
pd down youtube -l https://www.youtube.com/watch?v=... -f mp4 # or mp3, text etc
This will output a file called {TITLE}.txt at the current directory.
Downloading a Book
pd down libgen -n "Sun Tzu" -t "The Art of War"
This will output a file called The Art of War.pdf at the current directory.
Generating logo varations
$ pd edit logos -p /path/to/logo.png -t iOS - "20%"
# Outputs
# /path/to/logo40.png
# /path/to/logo60.png
# ...
This will generate all required iOS logos with 20% border radius at /path/to directory.
Resizing multiple images
You can use the resize command to resize multiple images at once. You specify the dimensions using -d "512x512" and
-n specifies no suffix.
$ pd edit resize -p path/to/folder/*.png -d "512x512" -n
# Outputs
# Resized image saved as path/to/folder/0.png
# Resized image saved as path/to/folder/1.png
Converting MP4 to MP3
$ pd conv video -p /path/to/file.mp4 -f mp3
This will output a file called file.mp3 at /path/to directory.
Processing a modern webpage
$ pd web view -l https://zeffmuks.com
This will display the renderred HTML source of the web page in the terminal.
You can query the rendered HTML using htmlq.
$ pd web view -l https://zeffmuks.com | htmlq ".css-17vaxo2"
<p class="chakra-text css-17vaxo2">Fast JSON5 Python Library</p>
...
<p class="chakra-text css-17vaxo2">Next Generation Content Platform</p>
Launching an EC2 instance
You can launch an EC2 instance using a launch template as below:
$ pd ec2 launch -n ec2-test -c 1
This will launch 1 EC2 instance called ec2-test using the launch template specified in ~/. pdconfig.json.
Check out the CONFIG.md for more details.
Generating an Nginx Config
You can generate a Nginx configuration file using the generate command.
$ pd nginx generate -h localhost -p 80 -d example.com -s /path/to/static
This will generate Nginx configuration for the given host, port, domain, and static file path.
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.