Files
tools/readme.md

6.5 KiB

@git.zone/tools 🛠️

A powerful CLI utility for managing your @git.zone development toolchain. Scan, update, and install all official @git.zone packages across multiple package managers — from a single command.

Issue Reporting and Security

For reporting bugs, issues, or security vulnerabilities, please visit community.foss.global/. This is the central community hub for all issue reporting. Developers who sign and comply with our contribution agreement and go through identification can also get a code.foss.global/ account to submit Pull Requests directly.

Installation 📦

Install globally with your preferred package manager:

# npm
npm install -g @git.zone/tools

# pnpm (recommended)
pnpm add -g @git.zone/tools

# yarn
yarn global add @git.zone/tools

This gives you the gtools binary.

Usage 🚀

Overview

gtools              # Show available commands
gtools update       # Check & update installed @git.zone packages
gtools install      # Interactively install missing @git.zone packages

gtools update — Keep Everything Fresh ♻️

Scans all available package managers (npm, pnpm, yarn) on your system, detects globally installed @git.zone packages, and checks them against the latest published versions.

gtools update             # Interactive — prompts before updating
gtools update -y          # Auto-approve all updates (great for CI)
gtools update --verbose   # Show package manager detection diagnostics

What it does:

  1. 🔍 Detects which package managers are available on your system
  2. 📊 Shows a version table for each detected package manager
  3. 🔄 Checks for a self-update of gtools itself first
  4. 📋 Lists all globally installed @git.zone packages with current vs. latest versions
  5. 🚀 Prompts you to update any outdated packages (or auto-updates with -y)

Example output:

Package managers:

  Name     Current     Latest      Status
  ──────────────────────────────────────────────
  pnpm     10.28.2     10.28.2     ✓ Up to date

Installed @git.zone packages:

  Package                      Current     Latest      PM      Status
  ─────────────────────────────────────────────────────────────────────
  @git.zone/cli                1.10.0      1.10.0      pnpm    ✓ Up to date
  @git.zone/tsbuild            4.3.0       4.3.0       pnpm    ✓ Up to date
  @git.zone/tstest             3.5.1       3.5.1       pnpm    ✓ Up to date

All packages are up to date!

gtools install — Bootstrap Your Toolchain 🧰

Detects which official @git.zone packages are not installed and lets you pick which ones to add.

gtools install             # Interactive selection
gtools install -y          # Install all missing packages automatically
gtools install --verbose   # Show detection diagnostics

Managed packages:

Package Description
@git.zone/cli The main gitzone CLI (gitzone command)
@git.zone/tsbuild TypeScript compiler wrapper
@git.zone/tstest Test runner for TypeScript projects
@git.zone/tsbundle Bundle TypeScript for browsers
@git.zone/tswatch File watcher with live reload
@git.zone/tspublish Publish packages to npm registries
@git.zone/tsdoc Documentation generator
@git.zone/tsdocker Docker integration for TS projects
@git.zone/tsview Component viewer
@git.zone/tsrust Rust cross-compilation support

Smart Package Manager Detection 🔎

gtools doesn't assume which package manager you use. It probes for npm, pnpm, and yarn using multiple detection strategies:

  1. which command — checks the system PATH
  2. --version fallback — directly invokes the PM if which fails

When installing, it recommends the package manager that already has the most @git.zone packages, so your toolchain stays consistent.

Programmatic API 🔧

You can also use @git.zone/tools as a library:

import { runCli } from '@git.zone/tools';

// Launch the CLI programmatically
await runCli();

Or use the PackageManagerUtil class directly for custom tooling:

import { PackageManagerUtil } from '@git.zone/tools/dist_ts/mod_update/classes.packagemanager.js';

const pmUtil = new PackageManagerUtil();

// Check if pnpm is available
const pnpmInfo = await pmUtil.detectPackageManager('pnpm');
console.log(pnpmInfo.available); // true/false

// Get globally installed @git.zone packages
const packages = await pmUtil.getInstalledPackages('pnpm');

// Get latest version from registry (checks private registry first, then npm)
const latest = await pmUtil.getLatestVersion('@git.zone/tsbuild');

// Compare versions
pmUtil.isNewerVersion('1.0.0', '2.0.0'); // true

This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the license file.

Please note: The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.

Trademarks

This project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH or third parties, and are not included within the scope of the MIT license granted herein.

Use of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines or the guidelines of the respective third-party owners, and any usage must be approved in writing. Third-party trademarks used herein are the property of their respective owners and used only in a descriptive manner, e.g. for an implementation of an API or similar.

Company Information

Task Venture Capital GmbH Registered at District Court Bremen HRB 35230 HB, Germany

For any legal inquiries or further information, please contact us via email at hello@task.vc.

By using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.