mirror of
https://github.com/browseros-ai/BrowserOS.git
synced 2026-05-14 08:03:58 +00:00
Compare commits
2 Commits
dev1/claud
...
fix/naming
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6632e34bdb | ||
|
|
a6f5c00ac8 |
3
packages/browseros-agent/.gitignore
vendored
3
packages/browseros-agent/.gitignore
vendored
@@ -180,8 +180,7 @@ packages/*/dist
|
||||
browseros-server
|
||||
browseros-server.exe
|
||||
browseros-server-*
|
||||
tools/alpha/balpha
|
||||
tools/alpha/browseros-alpha
|
||||
tools/dogfood/browseros-dogfood
|
||||
tools/dev/browseros-dev
|
||||
|
||||
log.txt
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
"dev:watch:new": "./tools/dev/run.sh watch --new",
|
||||
"dev:manual": "./tools/dev/run.sh watch --manual",
|
||||
"dev:setup": "./tools/dev/setup.sh",
|
||||
"install:balpha": "make -C tools/alpha install",
|
||||
"install:browseros-dogfood": "make -C tools/dogfood install",
|
||||
"test:env": "./tools/dev/run.sh test",
|
||||
"test:cleanup": "./tools/dev/run.sh cleanup",
|
||||
"start:server": "bun run --filter @browseros/server --elide-lines=0 start",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
BINARY := balpha
|
||||
BINARY := browseros-dogfood
|
||||
SOURCES := $(shell find . -name '*.go') go.mod go.sum
|
||||
PREFIX ?= $(HOME)/bin
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
# balpha
|
||||
# browseros-dogfood
|
||||
|
||||
Internal BrowserOS alpha dogfooding CLI for running the current checkout against a copied BrowserOS profile.
|
||||
Internal BrowserOS dogfooding CLI for running the current checkout against a copied BrowserOS profile.
|
||||
|
||||
## What It Does
|
||||
|
||||
`balpha` starts a local BrowserOS dogfooding environment:
|
||||
`browseros-dogfood` starts a local BrowserOS dogfooding environment:
|
||||
|
||||
- Uses the BrowserOS repo path from config, then works from `packages/browseros-agent`.
|
||||
- Copies one installed BrowserOS profile into a separate dev profile under `~/.config/balpha/profile`.
|
||||
- Copies one installed BrowserOS profile into a separate dev profile under `~/.config/browseros-dogfood/profile`.
|
||||
- Writes `apps/server/.env.production` and `apps/cli/.env.production` from config.
|
||||
- Runs the existing `tools/dev/setup.sh` setup flow.
|
||||
- Builds the WXT dev extension.
|
||||
- Launches `/Applications/BrowserOS.app` with the dev profile, the local extension, and the built-in server disabled.
|
||||
- Starts the local Bun server from `apps/server`.
|
||||
|
||||
It does not auto-pull on `start`. Use `balpha pull` when you want to refresh the checkout.
|
||||
It does not auto-pull on `start`. Use `browseros-dogfood pull` when you want to refresh the checkout.
|
||||
|
||||
## Requirements
|
||||
|
||||
@@ -31,22 +31,22 @@ From the BrowserOS monorepo root:
|
||||
|
||||
```bash
|
||||
cd packages/browseros-agent
|
||||
bun run install:balpha
|
||||
bun run install:browseros-dogfood
|
||||
```
|
||||
|
||||
This builds `tools/alpha/balpha` and installs it to `~/bin/balpha`.
|
||||
This builds `tools/dogfood/browseros-dogfood` and installs it to `~/bin/browseros-dogfood`.
|
||||
|
||||
To install somewhere else:
|
||||
|
||||
```bash
|
||||
cd packages/browseros-agent/tools/alpha
|
||||
cd packages/browseros-agent/tools/dogfood
|
||||
make install PREFIX=/usr/local/bin
|
||||
```
|
||||
|
||||
Check the binary:
|
||||
|
||||
```bash
|
||||
balpha --help
|
||||
browseros-dogfood --help
|
||||
```
|
||||
|
||||
## First-Time Setup
|
||||
@@ -54,7 +54,7 @@ balpha --help
|
||||
Run:
|
||||
|
||||
```bash
|
||||
balpha init
|
||||
browseros-dogfood init
|
||||
```
|
||||
|
||||
`init` asks for:
|
||||
@@ -66,13 +66,13 @@ balpha init
|
||||
Config is written to:
|
||||
|
||||
```text
|
||||
~/.config/balpha/config.yaml
|
||||
~/.config/browseros-dogfood/config.yaml
|
||||
```
|
||||
|
||||
The dev profile defaults to:
|
||||
|
||||
```text
|
||||
~/.config/balpha/profile
|
||||
~/.config/browseros-dogfood/profile
|
||||
```
|
||||
|
||||
`init` also writes the generated production env files in the configured checkout.
|
||||
@@ -80,7 +80,7 @@ The dev profile defaults to:
|
||||
## Start
|
||||
|
||||
```bash
|
||||
balpha start
|
||||
browseros-dogfood start
|
||||
```
|
||||
|
||||
Each start:
|
||||
@@ -97,23 +97,23 @@ Each start:
|
||||
Use this when you want to refresh the copied profile before launching:
|
||||
|
||||
```bash
|
||||
balpha start --refresh-profile
|
||||
browseros-dogfood start --refresh-profile
|
||||
```
|
||||
|
||||
Use this for a headless launch:
|
||||
|
||||
```bash
|
||||
balpha start --headless
|
||||
browseros-dogfood start --headless
|
||||
```
|
||||
|
||||
Stop the environment with `Ctrl+C`.
|
||||
|
||||
## Logs
|
||||
|
||||
`balpha start` writes process logs to:
|
||||
`browseros-dogfood start` writes process logs to:
|
||||
|
||||
```text
|
||||
~/.config/balpha/profile/logs
|
||||
~/.config/browseros-dogfood/profile/logs
|
||||
```
|
||||
|
||||
The current files are:
|
||||
@@ -121,27 +121,27 @@ The current files are:
|
||||
- `chromium.log`: BrowserOS/Chromium stdout and stderr.
|
||||
- `server.log`: local Bun server stdout and stderr.
|
||||
|
||||
When either file is older than one day at startup, `balpha` rotates it to
|
||||
When either file is older than one day at startup, `browseros-dogfood` rotates it to
|
||||
`<name>.old` before writing a fresh log.
|
||||
|
||||
To print the log directory and file paths:
|
||||
|
||||
```bash
|
||||
balpha logs
|
||||
browseros-dogfood logs
|
||||
```
|
||||
|
||||
## Update The Checkout
|
||||
|
||||
`balpha start` intentionally does not pull. To update the configured repo:
|
||||
`browseros-dogfood start` intentionally does not pull. To update the configured repo:
|
||||
|
||||
```bash
|
||||
balpha pull
|
||||
browseros-dogfood pull
|
||||
```
|
||||
|
||||
If the checkout has uncommitted changes, `pull` fails. To pull anyway:
|
||||
|
||||
```bash
|
||||
balpha pull --force
|
||||
browseros-dogfood pull --force
|
||||
```
|
||||
|
||||
## Refresh The Copied Profile
|
||||
@@ -149,7 +149,7 @@ balpha pull --force
|
||||
To overwrite the dev profile from the selected installed BrowserOS profile:
|
||||
|
||||
```bash
|
||||
balpha refresh-profile
|
||||
browseros-dogfood refresh-profile
|
||||
```
|
||||
|
||||
This removes and recreates `dev_user_data_dir`. It refuses to run if the dev user-data dir is the real BrowserOS user-data dir or lives inside it.
|
||||
@@ -157,7 +157,7 @@ This removes and recreates `dev_user_data_dir`. It refuses to run if the dev use
|
||||
## Edit Config
|
||||
|
||||
```bash
|
||||
balpha config edit
|
||||
browseros-dogfood config edit
|
||||
```
|
||||
|
||||
Important fields:
|
||||
@@ -166,7 +166,7 @@ Important fields:
|
||||
- `browseros_app_path`: BrowserOS executable to launch.
|
||||
- `source_user_data_dir`: installed BrowserOS user-data dir. Defaults to `~/Library/Application Support/BrowserOS`.
|
||||
- `source_profile_dir`: installed profile directory to copy.
|
||||
- `dev_user_data_dir`: separate dev user-data dir. Defaults to `~/.config/balpha/profile`.
|
||||
- `dev_user_data_dir`: separate dev user-data dir. Defaults to `~/.config/browseros-dogfood/profile`.
|
||||
- `dev_profile_dir`: dev profile directory. Defaults to `Default`.
|
||||
- `ports`: CDP, BrowserOS server, and extension ports.
|
||||
- `production_env`: values written to `apps/server/.env.production` and `apps/cli/.env.production`.
|
||||
@@ -174,6 +174,6 @@ Important fields:
|
||||
## Safety Notes
|
||||
|
||||
- Do not point `dev_user_data_dir` at the real BrowserOS profile.
|
||||
- `balpha` does not pass `--use-mock-keychain`; copied login data relies on the installed signed app path.
|
||||
- `browseros-dogfood` does not pass `--use-mock-keychain`; copied login data relies on the installed signed app path.
|
||||
- Default ports are CDP `9015`, server `9115`, and extension `9315`.
|
||||
- Browser launch passes `--browseros-mcp-port`, `--browseros-server-port`, and `--browseros-proxy-port` to tolerate current switch differences.
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
|
||||
"browseros-alpha/config"
|
||||
"browseros-dogfood/config"
|
||||
)
|
||||
|
||||
type ArgsConfig struct {
|
||||
@@ -4,14 +4,14 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"browseros-alpha/config"
|
||||
"browseros-dogfood/config"
|
||||
)
|
||||
|
||||
func TestBuildArgs(t *testing.T) {
|
||||
args := BuildArgs(ArgsConfig{
|
||||
Binary: "/Applications/BrowserOS.app/Contents/MacOS/BrowserOS",
|
||||
AgentRoot: "/repo/packages/browseros-agent",
|
||||
UserDataDir: "/tmp/balpha",
|
||||
UserDataDir: "/tmp/browseros-dogfood",
|
||||
ProfileDir: "Default",
|
||||
Ports: config.Ports{CDP: 9015, Server: 9115, Extension: 9315},
|
||||
})
|
||||
@@ -22,7 +22,7 @@ func TestBuildArgs(t *testing.T) {
|
||||
"--browseros-server-port=9115",
|
||||
"--browseros-proxy-port=9115",
|
||||
"--browseros-extension-port=9315",
|
||||
"--user-data-dir=/tmp/balpha",
|
||||
"--user-data-dir=/tmp/browseros-dogfood",
|
||||
"--profile-directory=Default",
|
||||
"--disable-browseros-server",
|
||||
"--disable-browseros-extensions",
|
||||
@@ -43,7 +43,7 @@ func TestBuildArgsHeadless(t *testing.T) {
|
||||
args := BuildArgs(ArgsConfig{
|
||||
Binary: "/bin/browser",
|
||||
AgentRoot: "/repo/packages/browseros-agent",
|
||||
UserDataDir: "/tmp/balpha",
|
||||
UserDataDir: "/tmp/browseros-dogfood",
|
||||
Ports: config.Ports{CDP: 1, Server: 2, Extension: 3},
|
||||
Headless: true,
|
||||
})
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"os"
|
||||
"os/exec"
|
||||
|
||||
"browseros-alpha/config"
|
||||
"browseros-dogfood/config"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
@@ -17,12 +17,12 @@ func init() {
|
||||
|
||||
var configCmd = &cobra.Command{
|
||||
Use: "config",
|
||||
Short: "Manage balpha config",
|
||||
Short: "Manage browseros-dogfood config",
|
||||
}
|
||||
|
||||
var configEditCmd = &cobra.Command{
|
||||
Use: "edit",
|
||||
Short: "Open balpha config in $EDITOR",
|
||||
Short: "Open browseros-dogfood config in $EDITOR",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
path, err := config.Path()
|
||||
if err != nil {
|
||||
@@ -8,9 +8,9 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"browseros-alpha/config"
|
||||
"browseros-alpha/pipeline"
|
||||
"browseros-alpha/profile"
|
||||
"browseros-dogfood/config"
|
||||
"browseros-dogfood/pipeline"
|
||||
"browseros-dogfood/profile"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
@@ -21,7 +21,7 @@ func init() {
|
||||
|
||||
var initCmd = &cobra.Command{
|
||||
Use: "init",
|
||||
Short: "Create or update balpha config",
|
||||
Short: "Create or update browseros-dogfood config",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
home, err := os.UserHomeDir()
|
||||
if err != nil {
|
||||
@@ -50,7 +50,7 @@ var initCmd = &cobra.Command{
|
||||
if err := pipeline.WriteProductionEnvFiles(cfg.AgentRoot(), cfg); err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Printf("Config written: %s\nRun: balpha start\n", path)
|
||||
fmt.Printf("Config written: %s\nRun: browseros-dogfood start\n", path)
|
||||
return nil
|
||||
},
|
||||
}
|
||||
@@ -4,8 +4,8 @@ import (
|
||||
"fmt"
|
||||
"io"
|
||||
|
||||
"browseros-alpha/config"
|
||||
"browseros-alpha/proc"
|
||||
"browseros-dogfood/config"
|
||||
"browseros-dogfood/proc"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
@@ -16,7 +16,7 @@ func init() {
|
||||
|
||||
var logsCmd = &cobra.Command{
|
||||
Use: "logs",
|
||||
Short: "Print balpha log files",
|
||||
Short: "Print browseros-dogfood log files",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
cfg, err := loadConfigWithoutValidation()
|
||||
if err != nil {
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"browseros-alpha/config"
|
||||
"browseros-dogfood/config"
|
||||
)
|
||||
|
||||
func TestPrintLogsShowsDirectoryAndFiles(t *testing.T) {
|
||||
@@ -3,7 +3,7 @@ package cmd
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"browseros-alpha/pipeline"
|
||||
"browseros-dogfood/pipeline"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
@@ -3,8 +3,8 @@ package cmd
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"browseros-alpha/config"
|
||||
"browseros-alpha/profile"
|
||||
"browseros-dogfood/config"
|
||||
"browseros-dogfood/profile"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
@@ -15,7 +15,7 @@ func init() {
|
||||
|
||||
var refreshProfileCmd = &cobra.Command{
|
||||
Use: "refresh-profile",
|
||||
Short: "Copy the configured BrowserOS profile into the balpha dev profile",
|
||||
Short: "Copy the configured BrowserOS profile into the browseros-dogfood dev profile",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
cfg, err := loadConfig()
|
||||
if err != nil {
|
||||
@@ -52,7 +52,7 @@ func loadConfigWithoutValidation() (config.Config, error) {
|
||||
}
|
||||
cfg, err := config.Load(path)
|
||||
if err != nil {
|
||||
return config.Config{}, fmt.Errorf("missing config at %s; run balpha init: %w", path, err)
|
||||
return config.Config{}, fmt.Errorf("missing config at %s; run browseros-dogfood init: %w", path, err)
|
||||
}
|
||||
return cfg, nil
|
||||
}
|
||||
@@ -8,9 +8,9 @@ import (
|
||||
)
|
||||
|
||||
var rootCmd = &cobra.Command{
|
||||
Use: "balpha",
|
||||
Short: "BrowserOS alpha dogfooding CLI",
|
||||
Long: "balpha - BrowserOS alpha dogfooding CLI",
|
||||
Use: "browseros-dogfood",
|
||||
Short: "BrowserOS dogfooding CLI",
|
||||
Long: "browseros-dogfood - BrowserOS dogfooding CLI",
|
||||
CompletionOptions: cobra.CompletionOptions{DisableDefaultCmd: true},
|
||||
SilenceUsage: true,
|
||||
SilenceErrors: true,
|
||||
@@ -10,11 +10,11 @@ import (
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"browseros-alpha/browser"
|
||||
"browseros-alpha/config"
|
||||
"browseros-alpha/pipeline"
|
||||
"browseros-alpha/proc"
|
||||
"browseros-alpha/profile"
|
||||
"browseros-dogfood/browser"
|
||||
"browseros-dogfood/config"
|
||||
"browseros-dogfood/pipeline"
|
||||
"browseros-dogfood/proc"
|
||||
"browseros-dogfood/profile"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
@@ -35,7 +35,7 @@ func init() {
|
||||
|
||||
var startCmd = &cobra.Command{
|
||||
Use: "start",
|
||||
Short: "Start BrowserOS alpha dogfooding environment",
|
||||
Short: "Start BrowserOS dogfooding environment",
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
cfg, err := loadConfig()
|
||||
if err != nil {
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"browseros-alpha/internal/fspath"
|
||||
"browseros-dogfood/internal/fspath"
|
||||
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
@@ -50,9 +50,9 @@ func Path() (string, error) {
|
||||
|
||||
func DefaultConfigDir(home string) string {
|
||||
if xdg := os.Getenv("XDG_CONFIG_HOME"); xdg != "" {
|
||||
return filepath.Join(xdg, "balpha")
|
||||
return filepath.Join(xdg, "browseros-dogfood")
|
||||
}
|
||||
return filepath.Join(home, ".config", "balpha")
|
||||
return filepath.Join(home, ".config", "browseros-dogfood")
|
||||
}
|
||||
|
||||
func Defaults(home string) Config {
|
||||
@@ -89,7 +89,7 @@ func Save(path string, cfg Config) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
header := "# balpha configuration\n# Run: balpha init to reconfigure\n\n"
|
||||
header := "# browseros-dogfood configuration\n# Run: browseros-dogfood init to reconfigure\n\n"
|
||||
return os.WriteFile(path, append([]byte(header), data...), 0644)
|
||||
}
|
||||
|
||||
@@ -17,10 +17,10 @@ func TestDefaults(t *testing.T) {
|
||||
if cfg.SourceUserDataDir != filepath.Join(home, "Library/Application Support/BrowserOS") {
|
||||
t.Fatalf("unexpected source dir: %s", cfg.SourceUserDataDir)
|
||||
}
|
||||
if cfg.DevUserDataDir != filepath.Join(home, ".config/balpha/profile") {
|
||||
if cfg.DevUserDataDir != filepath.Join(home, ".config/browseros-dogfood/profile") {
|
||||
t.Fatalf("unexpected dev dir: %s", cfg.DevUserDataDir)
|
||||
}
|
||||
if cfg.LogDir() != filepath.Join(home, ".config/balpha/profile/logs") {
|
||||
if cfg.LogDir() != filepath.Join(home, ".config/browseros-dogfood/profile/logs") {
|
||||
t.Fatalf("unexpected log dir: %s", cfg.LogDir())
|
||||
}
|
||||
if cfg.DevProfileDir != "Default" {
|
||||
@@ -44,9 +44,9 @@ func TestDefaults(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestLogPathUsesProfileLogDir(t *testing.T) {
|
||||
cfg := Config{DevUserDataDir: "/tmp/balpha-profile"}
|
||||
cfg := Config{DevUserDataDir: "/tmp/browseros-dogfood-profile"}
|
||||
got := cfg.LogPath("server.log")
|
||||
want := filepath.Join("/tmp/balpha-profile", "logs", "server.log")
|
||||
want := filepath.Join("/tmp/browseros-dogfood-profile", "logs", "server.log")
|
||||
if got != want {
|
||||
t.Fatalf("got %q want %q", got, want)
|
||||
}
|
||||
@@ -117,7 +117,7 @@ func TestConfigPathHonorsXDG(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
want := filepath.Join(dir, "balpha", "config.yaml")
|
||||
want := filepath.Join(dir, "browseros-dogfood", "config.yaml")
|
||||
if got != want {
|
||||
t.Fatalf("got %q want %q", got, want)
|
||||
}
|
||||
@@ -131,7 +131,7 @@ func TestPathDefault(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
want := filepath.Join(home, ".config", "balpha", "config.yaml")
|
||||
want := filepath.Join(home, ".config", "browseros-dogfood", "config.yaml")
|
||||
if got != want {
|
||||
t.Fatalf("got %q want %q", got, want)
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
module browseros-alpha
|
||||
module browseros-dogfood
|
||||
|
||||
go 1.25.7
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package main
|
||||
|
||||
import "browseros-alpha/cmd"
|
||||
import "browseros-dogfood/cmd"
|
||||
|
||||
func main() {
|
||||
cmd.Execute()
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"browseros-alpha/config"
|
||||
"browseros-dogfood/config"
|
||||
)
|
||||
|
||||
func WriteProductionEnvFiles(agentRoot string, cfg config.Config) error {
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"browseros-alpha/config"
|
||||
"browseros-dogfood/config"
|
||||
)
|
||||
|
||||
func TestWriteProductionEnvFiles(t *testing.T) {
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
"os/exec"
|
||||
"strings"
|
||||
|
||||
"browseros-alpha/config"
|
||||
"browseros-dogfood/config"
|
||||
)
|
||||
|
||||
func ResolvePorts(start config.Ports) (config.Ports, bool, error) {
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"net"
|
||||
"testing"
|
||||
|
||||
"browseros-alpha/config"
|
||||
"browseros-dogfood/config"
|
||||
)
|
||||
|
||||
func TestResolvePortsIncrementsBusyPort(t *testing.T) {
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"browseros-alpha/internal/fspath"
|
||||
"browseros-dogfood/internal/fspath"
|
||||
)
|
||||
|
||||
type ImportConfig struct {
|
||||
@@ -57,7 +57,7 @@ packages/browseros/
|
||||
│ └── entitlements/ # macOS entitlements (app, helper, GPU, etc.)
|
||||
│
|
||||
├── tools/
|
||||
│ └── bdev # Developer tool
|
||||
│ └── patch # BrowserOS patch CLI
|
||||
│
|
||||
├── CHROMIUM_VERSION # Pinned Chromium version (MAJOR.MINOR.BUILD.PATCH)
|
||||
├── BASE_COMMIT # Base Chromium commit hash
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
BINARY := bdev
|
||||
BINARY := browseros-patch
|
||||
PREFIX ?= /usr/local/bin
|
||||
VERSION ?= dev
|
||||
|
||||
.PHONY: build install clean test fmt
|
||||
|
||||
build:
|
||||
go build -ldflags "-X github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/cmd.Version=$(VERSION)" -o $(BINARY) .
|
||||
go build -ldflags "-X github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/cmd.Version=$(VERSION)" -o $(BINARY) .
|
||||
|
||||
install: build
|
||||
mkdir -p $(PREFIX)
|
||||
@@ -3,9 +3,9 @@ package cmd
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/engine"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/resolve"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/ui"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/engine"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/resolve"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/ui"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
@@ -3,7 +3,7 @@ package cmd
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/ui"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/ui"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
@@ -3,8 +3,8 @@ package cmd
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/engine"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/ui"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/engine"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/ui"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
@@ -52,7 +52,7 @@ func init() {
|
||||
for _, conflict := range result.Conflicts {
|
||||
fmt.Printf(" %s\n", conflict.ChromiumPath)
|
||||
}
|
||||
fmt.Println(ui.Hint(`Run "bdev continue" after fixing the current conflict.`))
|
||||
fmt.Println(ui.Hint(`Run "browseros-patch continue" after fixing the current conflict.`))
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -3,8 +3,8 @@ package cmd
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/repo"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/workspace"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/repo"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/workspace"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
@@ -3,9 +3,9 @@ package cmd
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/engine"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/resolve"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/ui"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/engine"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/resolve"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/ui"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
@@ -4,8 +4,8 @@ import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/engine"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/ui"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/engine"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/ui"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
@@ -3,8 +3,8 @@ package cmd
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/engine"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/ui"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/engine"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/ui"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
@@ -26,7 +26,7 @@ func init() {
|
||||
rangeEnd := ""
|
||||
if rangeMode {
|
||||
if len(positional) < 2 || len(positional) > 3 {
|
||||
return fmt.Errorf(`range mode expects "bdev extract [workspace] --range <start> <end>"`)
|
||||
return fmt.Errorf(`range mode expects "browseros-patch extract [workspace] --range <start> <end>"`)
|
||||
}
|
||||
rangeStart = positional[len(positional)-2]
|
||||
rangeEnd = positional[len(positional)-1]
|
||||
@@ -3,8 +3,8 @@ package cmd
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/engine"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/ui"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/engine"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/ui"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
@@ -18,7 +18,7 @@ func init() {
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
if len(appState.Registry.Workspaces) == 0 {
|
||||
return renderResult(map[string]any{"workspaces": []any{}}, func() {
|
||||
fmt.Println("No workspaces registered. Run `bdev add <name> <path>`.")
|
||||
fmt.Println("No workspaces registered. Run `browseros-patch add <name> <path>`.")
|
||||
})
|
||||
}
|
||||
info, err := repoInfo()
|
||||
@@ -3,8 +3,8 @@ package cmd
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/engine"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/ui"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/engine"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/ui"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
@@ -3,7 +3,7 @@ package cmd
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/ui"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/ui"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
@@ -6,8 +6,8 @@ import (
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/app"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/ui"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/app"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/ui"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
@@ -84,7 +84,7 @@ const usageTemplate = `{{helpHeader "Usage:"}}{{if .Runnable}}
|
||||
`
|
||||
|
||||
var rootCmd = &cobra.Command{
|
||||
Use: "bdev",
|
||||
Use: "browseros-patch",
|
||||
Short: "Workspace-centric BrowserOS patch tooling for Chromium checkouts",
|
||||
Version: Version,
|
||||
SilenceUsage: true,
|
||||
@@ -3,9 +3,9 @@ package cmd
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/engine"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/resolve"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/ui"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/engine"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/resolve"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/ui"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
@@ -3,8 +3,8 @@ package cmd
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/engine"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/ui"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/engine"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/ui"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
@@ -3,8 +3,8 @@ package cmd
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/engine"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/ui"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/engine"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/ui"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
module github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev
|
||||
module github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch
|
||||
|
||||
go 1.25.0
|
||||
|
||||
@@ -5,8 +5,8 @@ import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/repo"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/workspace"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/repo"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/workspace"
|
||||
)
|
||||
|
||||
type App struct {
|
||||
@@ -58,7 +58,7 @@ func (a *App) RepoInfo() (*repo.Info, error) {
|
||||
discovered, err := repo.Discover(a.CWD)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf(
|
||||
`patches repo is not configured; run "bdev add <name> <path> --patches-repo <repo>" from the browseros repo once`,
|
||||
`patches repo is not configured; run "browseros-patch add <name> <path> --patches-repo <repo>" from the browseros repo once`,
|
||||
)
|
||||
}
|
||||
return repo.Load(discovered)
|
||||
@@ -8,11 +8,11 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/git"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/patch"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/repo"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/resolve"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/workspace"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/git"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/patch"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/repo"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/resolve"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/workspace"
|
||||
)
|
||||
|
||||
type ApplyOptions struct {
|
||||
@@ -8,11 +8,11 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/git"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/patch"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/repo"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/resolve"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/workspace"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/git"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/patch"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/repo"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/resolve"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/workspace"
|
||||
)
|
||||
|
||||
func TestAbortRevertsAppliedOpsAndRestoresPendingStash(t *testing.T) {
|
||||
@@ -4,10 +4,10 @@ import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/git"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/patch"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/repo"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/workspace"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/git"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/patch"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/repo"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/workspace"
|
||||
)
|
||||
|
||||
type ExtractOptions struct {
|
||||
@@ -4,8 +4,8 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/git"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/repo"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/git"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/repo"
|
||||
)
|
||||
|
||||
type PublishResult struct {
|
||||
@@ -3,11 +3,11 @@ package engine
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/git"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/patch"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/repo"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/resolve"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/workspace"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/git"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/patch"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/repo"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/resolve"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/workspace"
|
||||
)
|
||||
|
||||
type WorkspaceStatus struct {
|
||||
@@ -5,9 +5,9 @@ import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/git"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/repo"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/workspace"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/git"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/repo"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/workspace"
|
||||
)
|
||||
|
||||
type SyncOptions struct {
|
||||
@@ -67,7 +67,7 @@ func Sync(ctx context.Context, opts SyncOptions) (*SyncResult, error) {
|
||||
divergent := append([]string{}, status.NeedsUpdate...)
|
||||
divergent = append(divergent, status.Orphaned...)
|
||||
if len(divergent) > 0 {
|
||||
stashRef, err := git.StashPush(ctx, opts.Workspace.Path, "bdev sync stash", true, divergent)
|
||||
stashRef, err := git.StashPush(ctx, opts.Workspace.Path, "browseros-patch sync stash", true, divergent)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -78,7 +78,7 @@ rename to chrome/new.cc
|
||||
}
|
||||
|
||||
func TestPathMatchesSkipsInternalState(t *testing.T) {
|
||||
if PathMatches(".bdev/state.yaml", nil) {
|
||||
if PathMatches(".browseros-patch/state.yaml", nil) {
|
||||
t.Fatalf("expected internal state path to be ignored")
|
||||
}
|
||||
}
|
||||
@@ -69,7 +69,7 @@ func PathMatches(rel string, filters []string) bool {
|
||||
|
||||
func IsInternalPath(rel string) bool {
|
||||
candidate := NormalizeChromiumPath(rel)
|
||||
return candidate == ".bdev" || strings.HasPrefix(candidate, ".bdev/")
|
||||
return candidate == ".browseros-patch" || strings.HasPrefix(candidate, ".browseros-patch/")
|
||||
}
|
||||
|
||||
func (p FilePatch) IsPureRename() bool {
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
"slices"
|
||||
"strings"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/git"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/git"
|
||||
)
|
||||
|
||||
func BuildWorkingTreePatchSet(ctx context.Context, workspacePath string, base string, filters []string) (PatchSet, error) {
|
||||
@@ -6,8 +6,8 @@ import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/patch"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/workspace"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/patch"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/workspace"
|
||||
)
|
||||
|
||||
type Operation struct {
|
||||
@@ -82,7 +82,7 @@ func FindActive(reg *workspace.Registry, cwd string) (workspace.Entry, error) {
|
||||
}
|
||||
switch len(active) {
|
||||
case 0:
|
||||
return workspace.Entry{}, fmt.Errorf(`no active conflict resolution found; run "bdev apply" or "bdev sync --rebase" first`)
|
||||
return workspace.Entry{}, fmt.Errorf(`no active conflict resolution found; run "browseros-patch apply" or "browseros-patch sync --rebase" first`)
|
||||
case 1:
|
||||
return active[0], nil
|
||||
default:
|
||||
@@ -3,8 +3,8 @@ package resolve
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/patch"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/internal/workspace"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/patch"
|
||||
"github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/internal/workspace"
|
||||
)
|
||||
|
||||
func TestStateRoundTrip(t *testing.T) {
|
||||
@@ -15,10 +15,10 @@ type Config struct {
|
||||
|
||||
func ConfigDir() string {
|
||||
if xdg := os.Getenv("XDG_CONFIG_HOME"); xdg != "" {
|
||||
return filepath.Join(xdg, "bdev")
|
||||
return filepath.Join(xdg, "browseros-patch")
|
||||
}
|
||||
home, _ := os.UserHomeDir()
|
||||
return filepath.Join(home, ".config", "bdev")
|
||||
return filepath.Join(home, ".config", "browseros-patch")
|
||||
}
|
||||
|
||||
func ConfigPath() string {
|
||||
@@ -58,6 +58,6 @@ func SaveConfig(cfg *Config) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
header := "# bdev configuration\n\n"
|
||||
header := "# browseros-patch configuration\n\n"
|
||||
return os.WriteFile(ConfigPath(), append([]byte(header), body...), 0o644)
|
||||
}
|
||||
@@ -28,7 +28,7 @@ func Detect(reg *Registry, cwd string) (Entry, error) {
|
||||
}
|
||||
if bestLen == -1 {
|
||||
return Entry{}, fmt.Errorf(
|
||||
`not inside a registered workspace; run "bdev list" to inspect workspaces or pass one by name`,
|
||||
`not inside a registered workspace; run "browseros-patch list" to inspect workspaces or pass one by name`,
|
||||
)
|
||||
}
|
||||
return best, nil
|
||||
@@ -50,7 +50,7 @@ func SaveRegistry(reg *Registry) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
header := "# bdev workspaces\n\n"
|
||||
header := "# browseros-patch workspaces\n\n"
|
||||
return os.WriteFile(RegistryPath(), append([]byte(header), body...), 0o644)
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ type State struct {
|
||||
}
|
||||
|
||||
func StateDir(workspacePath string) string {
|
||||
return filepath.Join(workspacePath, ".bdev")
|
||||
return filepath.Join(workspacePath, ".browseros-patch")
|
||||
}
|
||||
|
||||
func StatePath(workspacePath string) string {
|
||||
@@ -65,6 +65,6 @@ func SaveState(workspacePath string, state *State) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
header := "# bdev workspace state\n\n"
|
||||
header := "# browseros-patch workspace state\n\n"
|
||||
return os.WriteFile(StatePath(workspacePath), append([]byte(header), body...), 0o644)
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package main
|
||||
|
||||
import "github.com/browseros-ai/BrowserOS/packages/browseros/tools/bdev/cmd"
|
||||
import "github.com/browseros-ai/BrowserOS/packages/browseros/tools/patch/cmd"
|
||||
|
||||
func main() {
|
||||
cmd.Execute()
|
||||
Reference in New Issue
Block a user