CLI automation platform for Java development in VS Code
Project description
Mega Snake
A development environment automation platform for teams using Java/Gradle in VS Code. It creates consistent local setups, shell configuration, and workspace tooling so developers can start coding quickly without repeating manual environment setup.
Why Mega Snake?
New contributors often lose time on first-day setup: matching Java and Gradle versions, configuring VS Code correctly, and wiring repetitive local scripts. Mega Snake solves this by automating the same environment steps for everyone.
- Start faster: bootstrap a ready-to-code Java workspace in VS Code with one CLI flow.
- Reduce setup drift: keep local Java/Gradle/tooling configuration consistent across developers.
- Automate recurring tasks: run common Git, release, and utility workflows from one CLI.
Installation
Via PyPI (Recommended for End Users)
Install mega-snake from PyPI using either uv or pipx:
Using uv:
uv tool install mega-snake
Using pipx:
pipx install mega-snake
Post-Installation Setup
After installation, add the shell initialization script to your shell configuration:
For bash/zsh, add this line to ~/.bashrc or ~/.zshrc:
. "$(mgsnake shell-path bash)"
For PowerShell, add this line to your PowerShell profile (usually $PROFILE):
. (mgsnake shell-path pwsh)
Then restart your terminal or source the configuration file to activate the mgsnake command.
Usage
Terminal Support
The mgsnake CLI works on:
- Windows: PowerShell
- macOS/Linux: bash or zsh
Basic Usage
After installation and shell profile configuration, use the mgsnake command:
```bash
# Show help
mgsnake --help
# Execute commands with specific log level
mgsnake --log-level DEBUG <command>
```
Log Levels
Available log levels (from least to most verbose):
- ERROR: Only errors
- WARNING: Errors and warnings
- INFO: Normal operational messages (default)
- DEBUG: Detailed information for debugging
- NOTSET: All messages
Example Commands
```bash
# Create a working environment
mgsnake working-env
# Check GraphQL schema
mgsnake graphql-schema
# Show branch details with debug info
mgsnake --log-level DEBUG remote-branches-details
```
Note: Each command has its own help. Use
mgsnake <command> --helpfor specific details.
Prefer command aliases for daily use
Many command names are intentionally descriptive. For faster terminal workflows, use aliases shown next to each command in this README.
# Full command
mgsnake working-env
# Alias
mgsnake cwe
Available Commands
Environment & Configuration
mgsnake working-env (aliases: cwe, env)
Sets up a complete VSCode workspace configuration for Java development:
- Creates/updates VSCode workspace file with recommended settings
- Configures git exclusions for workspace files
- Sets up Java and Gradle configurations
- Adds recommended VSCode extensions
- Configures debugging settings and launch configurations
- Sets up log watchers and GitHub queries
- Creates task definitions for common operations
mgsnake set-java (aliases: java, sj)
Configures Java for your workspace:
- Detects installed Java versions
- Allows selection of specific Java version
- Updates workspace settings to use selected version
- Configures both VSCode and shell environment
- Sets up Java formatter settings
mgsnake set-gradle (aliases: gradle, sg)
Manages Gradle configuration:
- Detects installed Gradle versions
- Allows selection of specific Gradle version
- Updates workspace settings to use selected version
- Configures both VSCode and shell environment
mgsnake set-maven (aliases: maven, sm)
Configures Maven for pom.xml-based projects:
- Detects Maven installation from your shell or uses
--maven-home - Sets
M2_HOMEin workspace terminal settings and local shell config - Configures VS Code Maven executable path
mgsnake maven-project-setup (aliases: mps)
Creates recommended VS Code tasks for Maven projects:
- Adds Maven tasks to the current
.code-workspacefile under thetaskssection - Includes tasks for
clean install,test,verify,dependency:tree, andspring-boot:run - Requires a
pom.xmlin the current directory
mgsnake init-local-config (aliases: iload, ilc)
Sets up local development configurations:
- Creates a local configuration file for developer-specific settings
- Configures shell-specific environment variables
- Allows custom function definitions
Git & Release Management
mgsnake diff-tree (aliases: dt, tree)
Creates a visual diff tree of the current branch against master.
- Usage:
mgsnake diff-tree [OPTIONS] - Options:
-c, --commit-hash <hash>: Compare against a specific commit instead of master.-d, --delete-original-files: Delete generated copy of original files in the tree.
- Output: Generates a tree structure in
workspace_temp/diff_tree/and opens it in VSCode.
mgsnake remote-branches-details (aliases: rbd)
Generates a detailed report of remote branches.
- Usage:
mgsnake remote-branches-details [OPTIONS] - Options:
-f, --filter-by <A|M|U>: Filter by (A)ll, (M)erged, or (U)nmerged status against master.
- Output: Creates
workspace_temp/remote_branches.txtwith branch details (author, date, etc.).
mgsnake remote-branches-cleanup (aliases: rbc)
Interactive tool to clean up merged remote branches.
- Parses the output of
remote-branches-details - Interactively asks which merged branches to delete from the remote
- Prunes local references
mgsnake create-release (aliases: release, cr)
Creates a GitHub release and tag for the project.
- Usage:
mgsnake create-release <tag_suffix> <release_type> [notes] [branch] - Arguments:
tag_suffix: Suffix for the new tag.release_type:p(Pre-release),l(Latest),r(Replace latest/Release).notes: (Optional) Release notes.branch: (Optional) Branch to create release from (defaults to current).
Utilities
mgsnake graphql-schema (aliases: graphql, gql, cgs)
Compiles GraphQL schema files.
- Usage:
mgsnake graphql-schema <schema_path> - Combines all schema files in the given directory into a single
.graphqlfile and a.jsonintrospection file.
mgsnake expired-certs-jks (aliases: ecj)
Checks a Java KeyStore (JKS) for expired certificates.
- Usage:
mgsnake expired-certs-jks <jks_path> [-p password] - Lists aliases and valid dates, creating warnings for expired certs.
mgsnake msg
Internal utility to print and log formatted messages.
- Usage:
mgsnake msg <message> [-t type] - Types:
S(Success),I(Info),W(Warning),E(Error),T(Tip).
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mega_snake-0.1.3.tar.gz.
File metadata
- Download URL: mega_snake-0.1.3.tar.gz
- Upload date:
- Size: 112.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f55d5c83880bfd3293e7e8d326dc4bfc5d6b30a2ea312e095ed7419941ddb88b
|
|
| MD5 |
ace5a842a438c125747316bf63406157
|
|
| BLAKE2b-256 |
9f4a8bb3d3586005574c0f37383812192bc737c4f5985b4895056aef1160ec2e
|
File details
Details for the file mega_snake-0.1.3-py3-none-any.whl.
File metadata
- Download URL: mega_snake-0.1.3-py3-none-any.whl
- Upload date:
- Size: 78.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c023723b8e210621046ae640a503246e2cfadddb8540750378aad23fe4c44b1
|
|
| MD5 |
110bc9585621b2d02520cf68732124bf
|
|
| BLAKE2b-256 |
1b19129d108b39e7923c522aef69baf1ec0bfa8c69d82454def1cc7e0563c4aa
|