From fcd26472ebcdc599cc15f2baaf228f5f89094d8b Mon Sep 17 00:00:00 2001 From: kevinwang Date: Sat, 7 Mar 2026 22:07:43 -0500 Subject: [PATCH 1/9] fix: Fix install script --- scripts/install.sh | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/scripts/install.sh b/scripts/install.sh index 45dd8d0c..5f60db8b 100644 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -30,7 +30,7 @@ if [ "\$ARCH" == "x86_64" ]; then ARCH=x64 elif [[ "\$ARCH" == aarch* ]]; then - ARCH=arm + ARCH=arm64 elif [[ "\$ARCH" == "arm64" ]]; then ARCH=arm64 else @@ -56,9 +56,17 @@ fi echo "Installing CLI from \$URL" if [ \$(command -v curl) ]; then - curl "\$URL" | tar "\$TAR_ARGS" + if [ "\$OS" = "darwin" ]; then + curl "\$URL" | tar "\$TAR_ARGS" + else + curl "\$URL" | tar "\$TAR_ARGS" --warning=no-unknown-keyword + fi else - wget -O- "\$URL" | tar "\$TAR_ARGS" + if [ "\$OS" = "darwin" ]; then + wget -O- "\$URL" | tar "\$TAR_ARGS" + else + wget -O- "\$URL" | tar "\$TAR_ARGS" --warning=no-unknown-keyword + fi fi # delete old codify bin if exists rm -f \$(command -v codify) || true From 09ff8438a76261619e6cc824d94dbf81aac3908c Mon Sep 17 00:00:00 2001 From: kevinwang Date: Mon, 9 Mar 2026 22:43:02 -0400 Subject: [PATCH 2/9] fix: Fix for test command not working --- src/connect/http-routes/handlers/test-handler.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connect/http-routes/handlers/test-handler.ts b/src/connect/http-routes/handlers/test-handler.ts index 18d07ba9..341bf8c3 100644 --- a/src/connect/http-routes/handlers/test-handler.ts +++ b/src/connect/http-routes/handlers/test-handler.ts @@ -30,11 +30,11 @@ export function testHandler() { session.additionalData.filePath = filePath; - return spawn(ShellUtils.getDefaultShell(), ['-c', `${ConnectOrchestrator.nodeBinary} ${ConnectOrchestrator.rootCommand} test`], { + return spawn(ShellUtils.getDefaultShell(), ['-c', `${ConnectOrchestrator.nodeBinary} ${ConnectOrchestrator.rootCommand} test -p ${filePath}`], { name: 'xterm-color', cols: 80, rows: 30, - cwd: filePath, + cwd: process.env.HOME, env: process.env }); } From bf1c5e0154aed9545fbb23cede7d09cc50b88362 Mon Sep 17 00:00:00 2001 From: kevinwang Date: Tue, 10 Mar 2026 00:02:42 -0400 Subject: [PATCH 3/9] fix: Fix test command not working (local reference found) --- src/commands/test.ts | 2 +- src/orchestrators/test.ts | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/commands/test.ts b/src/commands/test.ts index ab5074c0..47ee4e77 100644 --- a/src/commands/test.ts +++ b/src/commands/test.ts @@ -48,7 +48,7 @@ For more information, visit: https://docs.codifycli.com/commands/apply ] async init(): Promise { - ctx.log('Running Codify test...') + console.log('Running Codify test...') return super.init(); } diff --git a/src/orchestrators/test.ts b/src/orchestrators/test.ts index 019076db..114dbeb6 100644 --- a/src/orchestrators/test.ts +++ b/src/orchestrators/test.ts @@ -112,9 +112,6 @@ export const TestOrchestrator = { ctx.subprocessStarted(SubProcessName.TEST_CHECKING_VM_INSTALLED); planResult = await PlanOrchestrator.run({ codifyConfigs: [{ - type: 'project', - plugins: { default: '/Users/kevinwang/Projects/codify-homebrew-plugin/src/index.ts' } - }, { type: 'homebrew', formulae: ['sshpass'] }, { From 1436ff11af6aad76971e397c7a109550affbd73f Mon Sep 17 00:00:00 2001 From: kevinwang Date: Tue, 10 Mar 2026 16:21:56 -0400 Subject: [PATCH 4/9] feat: Augmented test to be able to accept live config updates. --- src/connect/socket-server.ts | 80 +++++++++++++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 1 deletion(-) diff --git a/src/connect/socket-server.ts b/src/connect/socket-server.ts index 86a377e5..aedd7c37 100644 --- a/src/connect/socket-server.ts +++ b/src/connect/socket-server.ts @@ -1,5 +1,8 @@ import { IPty } from '@homebridge/node-pty-prebuilt-multiarch'; +import * as fs from 'node:fs/promises'; import { Server as HttpServer, IncomingMessage } from 'node:http'; +import os from 'node:os'; +import path from 'node:path'; import { Duplex } from 'node:stream'; import { v4 as uuid } from 'uuid'; import WebSocket, { WebSocketServer } from 'ws'; @@ -122,10 +125,17 @@ export class SocketServer { this.mainConnections.set(clientId, ws); ws.send(JSON.stringify({ key: 'opened', data: { clientId, startTimestamp: this.startTimestamp.toISOString() } })); - ws.on('message', (message) => { + ws.on('message', async (message) => { const data = JSON.parse(message.toString('utf8')); + if (data.key === 'terminate') { process.exit(0); + return; + } + + if (data.key === 'update-config') { + await this.handleConfigUpdate(ws, data); + return; } }); @@ -134,6 +144,74 @@ export class SocketServer { }) } + private async handleConfigUpdate(ws: WebSocket, data: { sessionId: string; config: string }) { + try { + const { sessionId, config: configContent } = data; + + if (!sessionId || !configContent) { + ws.send(JSON.stringify({ + key: 'update-config-response', + success: false, + sessionId, + error: 'Missing sessionId or config' + })); + return; + } + + const session = this.sessions.get(sessionId); + if (!session) { + ws.send(JSON.stringify({ + key: 'update-config-response', + success: false, + sessionId, + error: 'Session not found' + })); + return; + } + + const filePath = session.additionalData.filePath as string | undefined; + if (!filePath) { + ws.send(JSON.stringify({ + key: 'update-config-response', + success: false, + sessionId, + error: 'File path not found in session' + })); + return; + } + + // Security: Ensure file path is in temp directory + const tmpDir = os.tmpdir(); + const resolvedPath = path.resolve(filePath); + if (!resolvedPath.startsWith(tmpDir)) { + console.error('Security: Attempted to write outside temp directory', filePath); + ws.send(JSON.stringify({ + key: 'update-config-response', + success: false, + sessionId, + error: 'Invalid file path' + })); + return; + } + + await fs.writeFile(filePath, configContent, 'utf8'); + + ws.send(JSON.stringify({ + key: 'update-config-response', + success: true, + sessionId + })); + } catch (error) { + console.error('Error updating config:', error); + ws.send(JSON.stringify({ + key: 'update-config-response', + success: false, + sessionId: data.sessionId, + error: error instanceof Error ? error.message : 'Unknown error' + })); + } + } + private validateOrigin = (origin: string): boolean => config.corsAllowedOrigins.includes(origin) From 4847b5925da1fac858b85dcd3aad875f3d45190d Mon Sep 17 00:00:00 2001 From: kevinwang Date: Wed, 11 Mar 2026 14:36:14 -0400 Subject: [PATCH 5/9] fix: Fix dependsOn requiring a full id (type.name). Instead modify it to only require type and match multiple resources. A full qualified name (type.name) will match only one resource. --- src/entities/project.ts | 26 +++++++++++++++++++++++++- src/entities/resource-config.ts | 12 +++++++----- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/src/entities/project.ts b/src/entities/project.ts index aee93f8b..fc371c91 100644 --- a/src/entities/project.ts +++ b/src/entities/project.ts @@ -248,7 +248,7 @@ ${JSON.stringify(projectConfigs, null, 2)}`); for (const r of this.resourceConfigs) { // User specified dependencies are hard dependencies. They must be present. - r.addDependenciesFromDependsOn((id) => resourceMap.has(id)); + r.addDependenciesFromDependsOn((idOrType) => this.getMatchingResourceIds(resourceMap, idOrType)); r.addDependenciesBasedOnParameters((id) => resourceMap.has(id)); // Plugin dependencies are soft dependencies. They only activate if the dependent resource is present. @@ -299,4 +299,28 @@ ${JSON.stringify(projectConfigs, null, 2)}`); } } } + + /** + * This function supports both full (type.name) and partial IDs (type) when matching. It's meant + * for the dependsOn field to simplify dependency resolution for. users. + * @param resourceMap + * @param idOrType + * @private + */ + private getMatchingResourceIds( + resourceMap: Map, + idOrType: string + ): string[] { + const hasName = idOrType.includes('.'); + + if (hasName) { + // Full ID (type.name): return exact match or empty array + return resourceMap.has(idOrType) ? [idOrType] : []; + } else { + // Partial ID (type only): return all resources with this type + return [...resourceMap.values()] + .filter((resource) => resource.type === idOrType) + .map((resource) => resource.id); + } + } } diff --git a/src/entities/resource-config.ts b/src/entities/resource-config.ts index b9474999..3d1d2f32 100644 --- a/src/entities/resource-config.ts +++ b/src/entities/resource-config.ts @@ -100,13 +100,15 @@ export class ResourceConfig implements ConfigBlock { this.raw[name] = value; } - addDependenciesFromDependsOn(resourceExists: (id: string) => boolean) { - for (const id of this.dependsOn) { - if (!resourceExists(id)) { - throw new Error(`Reference ${id} is not a valid resource`); + addDependenciesFromDependsOn(getMatchingResourceIds: (idOrType: string) => string[]) { + for (const idOrType of this.dependsOn) { + const matchingIds = getMatchingResourceIds(idOrType); + + if (matchingIds.length === 0) { + throw new Error(`Reference ${idOrType} is not a valid resource`); } - this.dependencyIds.push(id); + this.dependencyIds.push(...matchingIds); } } From 43c2b18306b4063f8936a7cb97ddac534ad77107 Mon Sep 17 00:00:00 2001 From: kevinwang Date: Mon, 23 Mar 2026 13:51:39 -0400 Subject: [PATCH 6/9] fix: Fix npm publish not working. --- package.json | 3 ++- src/config.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index af52629a..51f91267 100644 --- a/package.json +++ b/package.json @@ -142,7 +142,8 @@ "version": "oclif readme && git add README.md", "start:dev": "./bin/dev.js", "start:vm": "npm run build && npm run pack:macos && npm run start:vm", - "deploy": "npm run pkg && npm run notarize && npm run upload" + "deploy": "npm run pkg && npm run notarize && npm run upload", + "prepublishOnly": "npm run build" }, "version": "1.0.0", "bugs": "https://github.com/codifycli/codify/issues", diff --git a/src/config.ts b/src/config.ts index c6ba38cf..2bbbb09a 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,4 +1,4 @@ -export const VERSION = (await import("../package.json", { assert: { type: "json" } })).default.version; +export const VERSION = (await import("../package.json", { with: { type: "json" } })).default.version; export const config = { loginServerPort: 51_039, From 6063897acc20439eacadf0cda132e944909ba511 Mon Sep 17 00:00:00 2001 From: kevinwang Date: Sun, 5 Apr 2026 10:26:32 -0400 Subject: [PATCH 7/9] feat: Improved README --- README.md | 104 ++++++++++++++---------------------------------------- 1 file changed, 27 insertions(+), 77 deletions(-) diff --git a/README.md b/README.md index 3425398f..fab33b53 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ **Stop manually setting up your development environment. Define it once, replicate it everywhere.** -Codify is a command-line tool that brings the power of Infrastructure as Code (IaC) to your local development machine. Manage system settings, install packages, configure tools, and automate your entire setup using a simple, declarative configuration file—just like you manage your infrastructure with Terraform. +Codify is a command-line tool that brings the power of Infrastructure as Code (IaC) to your local development machine. Manage system settings, install packages, configure tools, and automate your setup using a simple, declarative configuration file. It's like Terraform but for your local machine.

Website • @@ -24,7 +24,6 @@ Every developer has been there: - **New machine?** Spend hours reinstalling and configuring everything - **Team onboarding?** Send them a scattered wiki page of manual installation steps - **Multiple machines?** Keep them in sync manually -- **What's installed?** No clear record of your development environment - **Configuration drift?** Your laptop works differently than your colleague's ## The Solution @@ -47,19 +46,19 @@ With Codify, your entire development environment is defined in a single `codify. ``` Now you can: -- ✅ **See what changes** before applying them with `codify plan` -- ✅ **Apply changes** automatically with `codify apply` -- ✅ **Version control** your environment setup -- ✅ **Share configurations** with your team -- ✅ **Replicate setups** across multiple machines in minutes +- **See what changes** before applying them with `codify plan` +- **Apply changes** automatically with `codify apply` +- **Version control** your environment setup +- **Share configurations** with your team +- **Replicate setups** across multiple machines in minutes ## Key Features -### 🎯 **Declarative Configuration** +### **Declarative Configuration** Define your entire development environment in a single, readable configuration file. No more shell scripts or scattered installation instructions. -### 🔍 **Plan Before You Apply** -Like Terraform, Codify shows you exactly what changes will be made before executing them. No surprises. +### **Plan Before You Apply** +Like Terraform, Codify shows you exactly what changes will be made before executing them. ```bash $ codify plan @@ -87,8 +86,8 @@ Do you want to apply the above changes? No ``` -### 📥 **Import Your Current Setup** -Already have a configured machine? Generate a Codify configuration from your existing setup in seconds: +### **Import Your Current Setup** +Already have a configured machine? Generate a Codify configuration from your existing setup: ```bash $ codify init @@ -109,7 +108,7 @@ Use to select and to submit. Use to select all items and to de-select all items. ``` -### 🔌 **Extensible Plugin System** +### **Extensible Plugin System** Out-of-the-box support for: - **Homebrew** (formulae and casks) - **VS Code** (extensions and settings) @@ -118,20 +117,19 @@ Out-of-the-box support for: - **Git** configuration - And [many more](https://docs.codifycli.com/plugins)... -Don't see what you need? Create your own plugin in minutes. +Don't see what you need? [Create your own plugin](https://codifycli.com/docs/plugins). -### 🌐 **Web-Based Editor** -Edit your configuration in a beautiful web interface at [dashboard.codifycli.com](https://dashboard.codifycli.com): -- 🎨 Intuitive UI with auto-completion -- 🔄 Real-time validation -- ☁️ Cloud sync across devices -- 🤝 Share configurations with your team +### **Web-Based Editor** +Edit your configuration in a web interface at [dashboard.codifycli.com](https://dashboard.codifycli.com): +- Intuitive UI with auto-completion +- Real-time validation +- Cloud sync across devices +- Share configurations with your team -### 🔒 **Safe & Secure** +### **Safe & Secure** - Preview all changes before applying -- Sudo password prompts only when needed -- Secure mode for extra protection -- Open source and Apache 2.0 licensed +- Both the CLI tool and default plugin are open source and Apache 2.0 licensed +- Requests your password each time elevated privileges (sudo) is required. ## Quick Start @@ -175,14 +173,6 @@ codify plan codify apply ``` -### Pro Tip: Use the Web Editor - -Visit [dashboard.codifycli.com](https://dashboard.codifycli.com) for a guided, visual way to build your configuration with: -- Auto-complete for all available packages -- Real-time validation -- Cloud storage and sync -- Shareable configurations - ## Common Commands | Command | Description | @@ -198,26 +188,6 @@ Visit [dashboard.codifycli.com](https://dashboard.codifycli.com) for a guided, v Run `codify --help` for a complete list of commands and options. -## Real-World Use Cases - -### **Individual Developers** -- Keep multiple machines (work laptop, personal laptop, desktop) in sync -- Quickly recover from system reinstalls or upgrades -- Document your development environment as code -- Try out new tools without the hassle of installing them - -### **Development Teams** -- Onboard new developers in minutes instead of days -- Ensure everyone has the same development environment -- Share team configurations via Git or the [Codify editor](https://dashboard.codifycli.com) -- Reduce "works on my machine" problems - -### **Organizations** -- Standardize development environments across teams -- Maintain compliance with required tools and versions -- Reduce IT support burden for developer setup -- Break down barriers between teams and departments - ## Example Configurations ### Full-Stack JavaScript Developer @@ -298,41 +268,21 @@ Run `codify --help` for a complete list of commands and options. ] ``` -## Why Codify vs. Alternatives? - -| Feature | Codify | Homebrew Bundle | Shell Scripts | Manual Setup | -|----------------------------------|:------:|:---------------:|:-------------:|:------------:| -| Declarative configuration | ✅ | ✅ | ❌ | ❌ | -| Plan before apply | ✅ | ❌ | ❌ | ❌ | -| Import existing setup | ✅ | ❌ | ❌ | ❌ | -| Multi-format support | ✅ | ❌ | ❌ | ❌ | -| Web-based editor | ✅ | ❌ | ❌ | ❌ | -| Cross-tool management | ✅ | ❌ | ⚠️ | ❌ | -| Extensible plugins | ✅ | ❌ | ⚠️ | ❌ | -| Cloud sync | ✅ | ❌ | ❌ | ❌ | -| Update detection | ✅ | ✅ | ❌ | ❌ | - ## Frequently Asked Questions **Q: Does Codify work on Linux and Windows?** A: Codify currently supports macOS and Linux. Windows support works via WSL. -**Q: Can I use Codify with my existing Homebrew setup?** -A: Yes! Run `codify init` to import your existing packages into a Codify configuration. - -**Q: Is my sudo password stored?** -A: No. Codify only caches your password in memory during a session and prompts when needed. Use `--secure` mode for extra protection. - **Q: How is this different from Ansible/Chef/Puppet?** A: Those tools are designed for server configuration management. Codify is purpose-built for local development environments with a focus on simplicity and developer experience. ## Community & Support -- 📚 **Documentation**: [docs.codifycli.com](https://docs.codifycli.com) -- 🐛 **Issues**: [GitHub Issues](https://github.com/codifycli/codify/issues) -- 💬 **Default Plugin**: [GitHub Default Plugin](https://github.com/codifycli/default-plugin) -- 🌐 **Website**: [codifycli.com](https://codifycli.com) -- ☁️ **Editor**: [dashboard.codifycli.com](https://dashboard.codifycli.com) +- **Documentation**: [docs.codifycli.com](https://docs.codifycli.com) +- **Issues**: [GitHub Issues](https://github.com/codifycli/codify/issues) +- **Default Plugin**: [GitHub Default Plugin](https://github.com/codifycli/default-plugin) +- **Website**: [codifycli.com](https://codifycli.com) +- **Editor**: [dashboard.codifycli.com](https://dashboard.codifycli.com) ## Contributing From d18ff0cc26b6822f3d7a9273ec366733444e363e Mon Sep 17 00:00:00 2001 From: kevinwang Date: Sun, 5 Apr 2026 14:10:35 -0400 Subject: [PATCH 8/9] fix: Updated urls to point to new documentation domain codifycli.com/docs instead --- README.md | 8 ++++---- scripts/install-beta.sh | 2 +- scripts/install.sh | 2 +- src/commands/apply.ts | 2 +- src/commands/connect.ts | 2 +- src/commands/destroy.ts | 2 +- src/commands/edit.ts | 2 +- src/commands/import.ts | 2 +- src/commands/init.ts | 2 +- src/commands/login.ts | 2 +- src/commands/logout.ts | 2 +- src/commands/plan.ts | 2 +- src/commands/refresh.ts | 2 +- src/commands/test.ts | 2 +- src/commands/validate.ts | 2 +- src/orchestrators/init.ts | 2 +- test/utils/default-component.test.tsx | 2 +- 17 files changed, 20 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index fab33b53..a3c6d044 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Codify is a command-line tool that brings the power of Infrastructure as Code (I

WebsiteWeb Editor • - Documentation + Documentation

@@ -115,7 +115,7 @@ Out-of-the-box support for: - **npm** global packages - **macOS** system preferences - **Git** configuration -- And [many more](https://docs.codifycli.com/plugins)... +- And [many more](https://codifycli.com/docs/plugins)... Don't see what you need? [Create your own plugin](https://codifycli.com/docs/plugins). @@ -278,7 +278,7 @@ A: Those tools are designed for server configuration management. Codify is purpo ## Community & Support -- **Documentation**: [docs.codifycli.com](https://docs.codifycli.com) +- **Documentation**: [codifycli.com/docs](https://codifycli.com/docs) - **Issues**: [GitHub Issues](https://github.com/codifycli/codify/issues) - **Default Plugin**: [GitHub Default Plugin](https://github.com/codifycli/default-plugin) - **Website**: [codifycli.com](https://codifycli.com) @@ -301,5 +301,5 @@ This project is licensed under the [Apache 2.0 License](LICENSE).

codifycli.comGitHub • - Docs + Docs

diff --git a/scripts/install-beta.sh b/scripts/install-beta.sh index 089527c3..2106318a 100644 --- a/scripts/install-beta.sh +++ b/scripts/install-beta.sh @@ -84,6 +84,6 @@ SCRIPT CYAN='\033[0;36m' END_ESCAPE='\033[0m' - printf "${CYAN}\n🎉 %s 🎉\n%s${END_ESCAPE}\n" "Successfully installed Codify. Type codify --help for a list of commands." "Visit the documentation at https://docs.codifycli.com for more info." + printf "${CYAN}\n🎉 %s 🎉\n%s${END_ESCAPE}\n" "Successfully installed Codify. Type codify --help for a list of commands." "Visit the documentation at https://codifycli.com/docs for more info." exit 0; } diff --git a/scripts/install.sh b/scripts/install.sh index 5f60db8b..df3d3d79 100644 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -84,6 +84,6 @@ SCRIPT CYAN='\033[0;36m' END_ESCAPE='\033[0m' - printf "${CYAN}\n🎉 %s 🎉\n%s${END_ESCAPE}\n" "Successfully installed Codify. Type codify --help for a list of commands." "Visit the documentation at https://docs.codifycli.com for more info." + printf "${CYAN}\n🎉 %s 🎉\n%s${END_ESCAPE}\n" "Successfully installed Codify. Type codify --help for a list of commands." "Visit the documentation at https://codifycli.com/docs for more info." exit 0; } diff --git a/src/commands/apply.ts b/src/commands/apply.ts index e4f25c25..d90bc887 100644 --- a/src/commands/apply.ts +++ b/src/commands/apply.ts @@ -16,7 +16,7 @@ any changes. For scripts: use ${chalk.bold.bgMagenta(' --output json ')} which will skip approval and apply changes directly. -For more information, visit: https://docs.codifycli.com/commands/apply +For more information, visit: https://codifycli.com/docs/commands/apply ` static flags = { diff --git a/src/commands/connect.ts b/src/commands/connect.ts index ba71b88d..f973decd 100644 --- a/src/commands/connect.ts +++ b/src/commands/connect.ts @@ -6,7 +6,7 @@ export default class Connect extends BaseCommand { `Open a connection to the Codify dashboard. This command will host a local server to receive commands (e.g. apply, destroy, etc.) from the Codify dashboard. -For more information, visit: https://docs.codifycli.com/commands/connect +For more information, visit: https://codifycli.com/docs/commands/connect ` static flags = {} diff --git a/src/commands/destroy.ts b/src/commands/destroy.ts index 45528b62..5338e6c8 100644 --- a/src/commands/destroy.ts +++ b/src/commands/destroy.ts @@ -18,7 +18,7 @@ with a matching type. • If a codify.jsonc file doesn't exist, additional information may be asked to identify the specific resource to destroy. -For more information, visit: https://docs.codifycli.com/commands/destory` +For more information, visit: https://codifycli.com/docs/commands/destory` static examples = [ '<%= config.bin %> <%= command.id %> homebrew nvm', diff --git a/src/commands/edit.ts b/src/commands/edit.ts index 81f4ebad..d8e4c6af 100644 --- a/src/commands/edit.ts +++ b/src/commands/edit.ts @@ -5,7 +5,7 @@ export default class Edit extends BaseCommand { static description = `Short cut for opening your default Codify file in the Codify dashboard. -For more information, visit: https://docs.codifycli.com/commands/edit +For more information, visit: https://codifycli.com/docs/commands/edit ` static flags = {} diff --git a/src/commands/import.ts b/src/commands/import.ts index 385125db..e805da0c 100644 --- a/src/commands/import.ts +++ b/src/commands/import.ts @@ -30,7 +30,7 @@ The results can be saved in one of three ways: Codify will attempt to smartly insert new configurations while preserving existing spacing and formatting. -For more information, visit: https://docs.codifycli.com/commands/import` +For more information, visit: https://codifycli.com/docs/commands/import` static override examples = [ '<%= config.bin %> <%= command.id %> homebrew nvm asdf', diff --git a/src/commands/init.ts b/src/commands/init.ts index 50f1e6f5..ad494e36 100644 --- a/src/commands/init.ts +++ b/src/commands/init.ts @@ -14,7 +14,7 @@ Use this command to automatically generate Codify configs based on the currently installed system resources. By default, the new file will be written to ${chalk.bold.bgMagenta(' ~/codify.jsonc ')}. -For more information, visit: https://docs.codifycli.com/commands/init` +For more information, visit: https://codifycli.com/docs/commands/init` static baseFlags= { ...BaseCommand.baseFlags, diff --git a/src/commands/login.ts b/src/commands/login.ts index 1da4e31a..fa9ab217 100644 --- a/src/commands/login.ts +++ b/src/commands/login.ts @@ -11,7 +11,7 @@ export default class Login extends BaseCommand { By default opens a browser window to login. If username and password are provided, it will attempt to login via CLI. -For more information, visit: https://docs.codifycli.com/commands/login +For more information, visit: https://codifycli.com/docs/commands/login ` static baseFlags = { diff --git a/src/commands/logout.ts b/src/commands/logout.ts index 2fee01fa..f39b4dfa 100644 --- a/src/commands/logout.ts +++ b/src/commands/logout.ts @@ -8,7 +8,7 @@ export default class Login extends BaseCommand { static description = `Logout of Codify cloud account -For more information, visit: https://docs.codifycli.com/commands/logout +For more information, visit: https://codifycli.com/docs/commands/logout ` static flags = {} diff --git a/src/commands/plan.ts b/src/commands/plan.ts index 1e3573b2..0b918401 100644 --- a/src/commands/plan.ts +++ b/src/commands/plan.ts @@ -15,7 +15,7 @@ the desired configuration to compute the execution plan. For scripts: use ${chalk.bold.bgMagenta(' --output json ')} which will skip all prompts and print only the final result as a json. -For more information, visit: https://docs.codifycli.com/commands/plan` +For more information, visit: https://codifycli.com/docs/commands/plan` static examples = [ '<%= config.bin %> <%= command.id %>', diff --git a/src/commands/refresh.ts b/src/commands/refresh.ts index 5f5815fc..db3386b1 100644 --- a/src/commands/refresh.ts +++ b/src/commands/refresh.ts @@ -14,7 +14,7 @@ Leave empty to refresh all resources. Codify will attempt to smartly insert new configurations while preserving existing spacing and formatting. -For more information, visit: https://docs.codifycli.com/commands/refresh` +For more information, visit: https://codifycli.com/docs/commands/refresh` static override examples = [ '<%= config.bin %> <%= command.id %> homebrew nvm asdf', diff --git a/src/commands/test.ts b/src/commands/test.ts index 47ee4e77..cbb5fb4a 100644 --- a/src/commands/test.ts +++ b/src/commands/test.ts @@ -19,7 +19,7 @@ any changes. For scripts: use ${chalk.bold.bgMagenta(' --output json ')} which will skip approval and apply changes directly. -For more information, visit: https://docs.codifycli.com/commands/apply +For more information, visit: https://codifycli.com/docs/commands/apply ` static flags = { diff --git a/src/commands/validate.ts b/src/commands/validate.ts index f4861fcf..836b869d 100644 --- a/src/commands/validate.ts +++ b/src/commands/validate.ts @@ -8,7 +8,7 @@ export default class Validate extends BaseCommand { static description = `Validate a codify.jsonc/codify.json/codify.yaml file. -For more information, visit: https://docs.codifycli.com/commands/validate +For more information, visit: https://codifycli.com/docs/commands/validate ` static flags = {} diff --git a/src/orchestrators/init.ts b/src/orchestrators/init.ts index 2925a84c..73328c8e 100644 --- a/src/orchestrators/init.ts +++ b/src/orchestrators/init.ts @@ -74,7 +74,7 @@ export const InitializeOrchestrator = { The imported configs were written to: ${locationToSave} Use ${chalk.bgMagenta.bold(' codify plan ')} to compute changes and ${chalk.bgMagenta.bold(' codify apply ')} to apply them. -For more information visit: https://docs.codifycli.com. +For more information visit: https://codifycli.com/docs. Enjoy! `) diff --git a/test/utils/default-component.test.tsx b/test/utils/default-component.test.tsx index c2f2df1f..db5928a0 100644 --- a/test/utils/default-component.test.tsx +++ b/test/utils/default-component.test.tsx @@ -51,7 +51,7 @@ describe('DefaultComponent', () => { The imported configs were written to: ${locationToSave} Use ${chalk.bgHex('#F0EAD6').bold(' codify plan ')} to futures compute changes and ${chalk.bgHex('#F0EAD6').bold(' codify apply ')} to apply them. -Visit the documentation for more info: https://docs.codifycli.com. +Visit the documentation for more info: https://codifycli.com/docs. `) }) From 1bc81a0e9fb002cc3713ec349846c947b04ead57 Mon Sep 17 00:00:00 2001 From: kevinwang Date: Sun, 5 Apr 2026 15:46:19 -0400 Subject: [PATCH 9/9] chore: bumped version to 1.0.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 51f91267..62932e7d 100644 --- a/package.json +++ b/package.json @@ -145,7 +145,7 @@ "deploy": "npm run pkg && npm run notarize && npm run upload", "prepublishOnly": "npm run build" }, - "version": "1.0.0", + "version": "1.0.1", "bugs": "https://github.com/codifycli/codify/issues", "keywords": [ "oclif",