azul-sync 1.3.4 → 1.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -10
- package/dist/build.d.ts +8 -4
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +20 -10
- package/dist/build.js.map +1 -1
- package/dist/cli.js +145 -125
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -8
- package/dist/index.js.map +1 -1
- package/dist/ipc/messages.d.ts +6 -1
- package/dist/ipc/messages.d.ts.map +1 -1
- package/dist/ipc/server.d.ts +1 -0
- package/dist/ipc/server.d.ts.map +1 -1
- package/dist/ipc/server.js +13 -2
- package/dist/ipc/server.js.map +1 -1
- package/dist/pack.d.ts.map +1 -1
- package/dist/pack.js +2 -1
- package/dist/pack.js.map +1 -1
- package/dist/push.d.ts +5 -2
- package/dist/push.d.ts.map +1 -1
- package/dist/push.js +37 -8
- package/dist/push.js.map +1 -1
- package/dist/sourcemap/propertyLoader.js +1 -1
- package/dist/sourcemap/propertyLoader.js.map +1 -1
- package/dist/util/cliArgs.d.ts +21 -0
- package/dist/util/cliArgs.d.ts.map +1 -0
- package/dist/util/cliArgs.js +105 -0
- package/dist/util/cliArgs.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,25 +6,25 @@ Azul allows you to use professional-grade tools like Visual Studio Code in Roblo
|
|
|
6
6
|
|
|
7
7
|
_Yes, the name is a pun on Rojo (Spanish for "red"). Azul means "blue"!_
|
|
8
8
|
|
|
9
|
-
<a href="#quick-start"><b>Quick Start</b></a> — <a href="#why-azul"><b>Why Azul</b></a> — <a href="https://
|
|
9
|
+
<a href="#quick-start"><b>Quick Start</b></a> — <a href="#why-azul"><b>Why Azul</b></a> — <a href="https://azul-docs.vercel.app"><b>Documentation</b></a>
|
|
10
10
|
|
|
11
11
|
## Philosophy
|
|
12
12
|
|
|
13
13
|
Azul treats **Studio as the source of truth**. The local filesystem mirrors what's in Studio, not the other way around.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
It avoids the complexity and ambiguity that can come with tools like Rojo: for example, deciding a new Script's parent class, properties, or attributes. Rather than trying to encode Studio state in extra files (i.e. `model.json`, `meta.json`...), Azul lets Studio determine state. This leads to a much simpler and more intuitive workflow.
|
|
16
16
|
|
|
17
|
-
Azul
|
|
17
|
+
While Azul mainly follows this philosophy, it doesn't cut you off from the filesystem. Build from local files using the `azul build` command, or selectively push files using `azul push`.
|
|
18
18
|
|
|
19
19
|
## Features
|
|
20
20
|
|
|
21
21
|
- - [x] 🔄 **Bi-directional sync**: Changes in Studio update files, and file edits update Studio
|
|
22
|
-
- - [x] 🏗️ **[Build command](https://github.com/Ransomwave/azul/wiki/Getting-started#building-from-an-existing-project)**: `azul build` one-time pushes your local files into Studio (creates or overwrites, never deletes)
|
|
23
|
-
- - [x] 📦 **[Push command](https://github.com/Ransomwave/azul/wiki/Commands#azul-push)**: `azul push` selectively pushes local files. Useful when importing external libraries or using package managers (i.e Wally)
|
|
24
|
-
- - [x] 🏛️ **Fully hermetic builds**: Use [`azul pack`](https://github.com/Ransomwave/azul/wiki/Commands#azul-pack) to fully serialize Instance properties, allowing for 1:1 reproductible builds when `build`ing or `push`ing.
|
|
25
|
-
- - [x] 🔴 **Rojo compatibility mode**: Supports importing from Rojo projects with the `--rojo` flag.
|
|
26
22
|
- - [x] 🌳 **DataModel mirroring**: Instance hierarchy 1:1 mapped to folder structure
|
|
27
|
-
- - [x] 🎯 **No manual config / required structure**: Works out of the box with new and existing Roblox Studio projects, regardless of structure
|
|
23
|
+
- - [x] 🎯 **No manual config / required structure**: Works out of the box with new and existing Roblox Studio projects, regardless of structure
|
|
24
|
+
- - [x] 🏗️ **[Build command](https://azul-docs.vercel.app/getting-started/projects/#build-from-an-existing-local-project)**: Sync your local files into Studio with `azul build`.
|
|
25
|
+
- - [x] 📦 **[Push command](https://azul-docs.vercel.app/commands/#azul-push)**: Selectively push local files into Studio using `azul push`. Useful when importing external libraries or using package managers (i.e Wally)
|
|
26
|
+
- - [x] 🏛️ **[Fully hermetic builds](https://azul-docs.vercel.app/commands/#azul-pack)**: Fully serialize Instance properties using `azul pack`, allowing for clean, reproductible builds when `build`ing or `push`ing.
|
|
27
|
+
- - [x] 🔴 **Rojo compatibility mode**: Supports importing from Rojo projects with the `--rojo` flag.
|
|
28
28
|
- - [x] 🗺️ **Automatic sourcemap generation**: Generates a Rojo-compatible `sourcemap.json` so tools like Luau-lsp work out of the box.
|
|
29
29
|
|
|
30
30
|
## Why Azul?
|
|
@@ -37,7 +37,7 @@ Compatible with projects both old and new, no more extra worrying about how to
|
|
|
37
37
|
|
|
38
38
|
While Rojo is a powerful tool, I don't believe it's always the best fit for every developer or project. Otherwise trivial tasks in Studio, like inserting a Script inside Tool or Model, suddenly become non-trivial challenges. Rojo just lacks the flexibility of Studio.
|
|
39
39
|
|
|
40
|
-
Azul is my approach to solve these issues. I built Azul for workflows similar to mine: Studio-first developers who'd rather manage their projects in the dedicated environment instead of fighting with
|
|
40
|
+
Azul is my approach to solve these issues. I built Azul for workflows similar to mine: Studio-first developers who'd rather manage their projects in the dedicated environment instead of fighting with project files.
|
|
41
41
|
|
|
42
42
|
### Why not use the upcoming Script Sync feature?
|
|
43
43
|
|
|
@@ -49,7 +49,7 @@ Azul offers several advantages over the upcoming Script Sync feature:
|
|
|
49
49
|
|
|
50
50
|
- **Pushing from filesystem**: Sync any code you have stored locally directly to your desired destination using `azul push`. Useful when importing external libraries (e.g. GitHub) or when using Package Managers (e.g. Wally, pesde)
|
|
51
51
|
|
|
52
|
-
- **Rojo compatibility**: Azul can import existing Rojo projects using the `--rojo` & `--rojo-project
|
|
52
|
+
- **Rojo compatibility**: Azul can import existing Rojo projects using the `--rojo` & `--rojo-project <file>` flags, making Azul compatible with many existing open source projects.
|
|
53
53
|
- **Generates a Rojo-compatible `sourcemap.json`**: This allows any tooling that require Rojo-style sourcemaps _(like luau-lsp, the language server)_ to work seamlessly.
|
|
54
54
|
|
|
55
55
|
- **You can use it today!**: Azul requires no commitment to a specific project structure. If you want to try out Script Sync (or any other tool) in the future, Azul won't get in your way.
|
package/dist/build.d.ts
CHANGED
|
@@ -2,16 +2,20 @@ interface BuildOptions {
|
|
|
2
2
|
syncDir?: string;
|
|
3
3
|
rojoMode?: boolean;
|
|
4
4
|
rojoProjectFile?: string;
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
applySourcemapProperties?: boolean;
|
|
6
|
+
useSourcemapAsSource?: boolean;
|
|
7
|
+
sourcemapPath?: string;
|
|
8
|
+
destructive?: boolean;
|
|
7
9
|
}
|
|
8
10
|
export declare class BuildCommand {
|
|
9
11
|
private ipc;
|
|
10
12
|
private syncDir;
|
|
11
13
|
private rojoMode;
|
|
12
14
|
private rojoProjectFile?;
|
|
13
|
-
private
|
|
14
|
-
private
|
|
15
|
+
private applySourcemapProperties;
|
|
16
|
+
private useSourcemapAsSource;
|
|
17
|
+
private sourcemapPath;
|
|
18
|
+
private destructive;
|
|
15
19
|
constructor(options?: BuildOptions);
|
|
16
20
|
run(): Promise<void>;
|
|
17
21
|
}
|
package/dist/build.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAcA,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAcA,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,wBAAwB,CAAU;IAC1C,OAAO,CAAC,oBAAoB,CAAU;IACtC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,WAAW,CAAU;gBAEjB,OAAO,GAAE,YAAiB;IAezB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAsFlC"}
|
package/dist/build.js
CHANGED
|
@@ -11,14 +11,18 @@ export class BuildCommand {
|
|
|
11
11
|
syncDir;
|
|
12
12
|
rojoMode;
|
|
13
13
|
rojoProjectFile;
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
applySourcemapProperties;
|
|
15
|
+
useSourcemapAsSource;
|
|
16
|
+
sourcemapPath;
|
|
17
|
+
destructive;
|
|
16
18
|
constructor(options = {}) {
|
|
17
19
|
this.syncDir = path.resolve(options.syncDir ?? config.syncDir);
|
|
18
20
|
this.rojoMode = Boolean(options.rojoMode);
|
|
19
21
|
this.rojoProjectFile = options.rojoProjectFile;
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
22
|
+
this.applySourcemapProperties = options.applySourcemapProperties !== false;
|
|
23
|
+
this.useSourcemapAsSource = options.useSourcemapAsSource === true;
|
|
24
|
+
this.sourcemapPath = path.resolve(options.sourcemapPath ?? config.sourcemapPath);
|
|
25
|
+
this.destructive = options.destructive === true;
|
|
22
26
|
this.ipc = new IPCServer(config.port, undefined, {
|
|
23
27
|
requestSnapshotOnConnect: false,
|
|
24
28
|
});
|
|
@@ -42,8 +46,8 @@ export class BuildCommand {
|
|
|
42
46
|
log.info(`Preparing build snapshot from ${this.syncDir}`);
|
|
43
47
|
}
|
|
44
48
|
let instances = [];
|
|
45
|
-
if (!this.rojoMode && this.
|
|
46
|
-
const built = buildInstancesFromSourcemap(
|
|
49
|
+
if (!this.rojoMode && this.useSourcemapAsSource) {
|
|
50
|
+
const built = buildInstancesFromSourcemap(this.sourcemapPath);
|
|
47
51
|
if (!built) {
|
|
48
52
|
log.warn("Falling back to filesystem build because sourcemap import failed.");
|
|
49
53
|
}
|
|
@@ -60,14 +64,16 @@ export class BuildCommand {
|
|
|
60
64
|
return;
|
|
61
65
|
}
|
|
62
66
|
}
|
|
63
|
-
if (!this.rojoMode &&
|
|
64
|
-
|
|
67
|
+
if (!this.rojoMode &&
|
|
68
|
+
this.applySourcemapProperties &&
|
|
69
|
+
!this.useSourcemapAsSource) {
|
|
70
|
+
const index = loadSourcemapPropertyIndex(this.sourcemapPath);
|
|
65
71
|
const applied = applySourcemapProperties(instances, index);
|
|
66
72
|
if (applied > 0) {
|
|
67
73
|
log.success(`Applied properties/attributes from sourcemap to ${applied} instance(s)`);
|
|
68
74
|
}
|
|
69
75
|
else {
|
|
70
|
-
if (!index && fs.existsSync(
|
|
76
|
+
if (!index && fs.existsSync(this.sourcemapPath)) {
|
|
71
77
|
log.warn("Sourcemap present but could not be parsed; continuing without properties.");
|
|
72
78
|
}
|
|
73
79
|
else {
|
|
@@ -79,7 +85,11 @@ export class BuildCommand {
|
|
|
79
85
|
await new Promise((resolve) => {
|
|
80
86
|
this.ipc.onConnection(() => {
|
|
81
87
|
log.info("Studio connected. Sending build snapshot...");
|
|
82
|
-
this.ipc.send({
|
|
88
|
+
this.ipc.send({
|
|
89
|
+
type: "buildSnapshot",
|
|
90
|
+
data: instances,
|
|
91
|
+
destructive: this.destructive,
|
|
92
|
+
});
|
|
83
93
|
log.success(`Sent ${instances.length} instances`);
|
|
84
94
|
setTimeout(() => {
|
|
85
95
|
this.ipc.close();
|
package/dist/build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -10,76 +10,71 @@ import { BuildCommand } from "./build.js";
|
|
|
10
10
|
import { PushCommand } from "./push.js";
|
|
11
11
|
import { PackCommand } from "./pack.js";
|
|
12
12
|
import { fileURLToPath } from "node:url";
|
|
13
|
+
import { parseCliArgs } from "./util/cliArgs.js";
|
|
13
14
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
14
15
|
const pkg = JSON.parse(fs.readFileSync(resolve(__dirname, "../package.json"), "utf8"));
|
|
15
16
|
const { version } = pkg;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const fromSourcemapValue = getFlagValue(["--from-sourcemap"], args);
|
|
26
|
-
const fromSourcemapFlag = args.includes("--from-sourcemap") || fromSourcemapValue !== null;
|
|
27
|
-
if (args.includes("--help") || args.includes("-h")) {
|
|
17
|
+
let parsedArgs;
|
|
18
|
+
try {
|
|
19
|
+
parsedArgs = parseCliArgs(process.argv.slice(2));
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
log.error(`${error}`);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
if (parsedArgs.help) {
|
|
28
26
|
console.log(`
|
|
29
27
|
Usage:
|
|
30
28
|
azul <command> [options]
|
|
31
|
-
azul build [--from-sourcemap <file>] [--rojo] [--rojo-project <file>]
|
|
32
|
-
azul push [options] [--rojo] [--rojo-project <file>] [--from-sourcemap <file>]
|
|
33
|
-
azul pack [-o <file>] [--scripts-only]
|
|
34
|
-
azul config [--path]
|
|
35
29
|
|
|
36
30
|
Commands:
|
|
37
|
-
(no command)
|
|
38
|
-
build
|
|
39
|
-
push
|
|
40
|
-
pack
|
|
41
|
-
config
|
|
31
|
+
(no command) Start live sync daemon
|
|
32
|
+
build One-time push from filesystem into Studio
|
|
33
|
+
push Selective push using mappings (place config or -s/-d)
|
|
34
|
+
pack Serialize Studio instance properties into sourcemap.json
|
|
35
|
+
config Open the Azul config file in your default editor
|
|
42
36
|
|
|
43
37
|
Global Options:
|
|
44
|
-
-h, --help
|
|
45
|
-
--version
|
|
46
|
-
--debug
|
|
47
|
-
--no-warn
|
|
48
|
-
--sync-dir
|
|
49
|
-
--port
|
|
38
|
+
-h, --help Show this help message
|
|
39
|
+
--version Show Azul version
|
|
40
|
+
--debug Print verbose debug output
|
|
41
|
+
--no-warn Disable confirmation prompts for dangerous operations
|
|
42
|
+
--sync-dir <path> Directory to sync (default: current directory)
|
|
43
|
+
--port <number> Studio connection port
|
|
50
44
|
|
|
51
45
|
Build Options:
|
|
52
|
-
--from-sourcemap
|
|
53
|
-
--
|
|
54
|
-
--rojo
|
|
46
|
+
--from-sourcemap <file> Build from sourcemap
|
|
47
|
+
--destructive Wipe destination children for build roots before applying snapshot
|
|
48
|
+
--rojo Enable Rojo-compatible parsing
|
|
49
|
+
--rojo-project <file> Use a Rojo project file
|
|
55
50
|
|
|
56
51
|
Push Options:
|
|
57
|
-
-s, --source
|
|
58
|
-
-d, --destination
|
|
59
|
-
--from-sourcemap
|
|
60
|
-
--no-place-config
|
|
61
|
-
--destructive
|
|
62
|
-
--rojo
|
|
63
|
-
--rojo-project
|
|
52
|
+
-s, --source <dir> Source folder to push
|
|
53
|
+
-d, --destination <path> Studio destination path (i.e "ReplicatedStorage.Packages")
|
|
54
|
+
--from-sourcemap <file> Push from sourcemap
|
|
55
|
+
--no-place-config Ignore push mappings from place ModuleScript
|
|
56
|
+
--destructive Wipe destination children before pushing
|
|
57
|
+
--rojo Enable Rojo-compatible parsing
|
|
58
|
+
--rojo-project <file> Use a Rojo project file
|
|
64
59
|
|
|
65
60
|
Pack Options:
|
|
66
|
-
-o, --output
|
|
67
|
-
--scripts-only
|
|
61
|
+
-o, --output <file> Sourcemap path to write (default: config.sourcemapPath)
|
|
62
|
+
--scripts-only Serialize only scripts and their descendants
|
|
68
63
|
|
|
69
64
|
Config Options:
|
|
70
|
-
--path
|
|
65
|
+
--path Print config file path
|
|
71
66
|
`);
|
|
72
67
|
process.exit(0);
|
|
73
68
|
}
|
|
74
|
-
if (
|
|
69
|
+
if (parsedArgs.version) {
|
|
75
70
|
log.info(`Azul version: ${version}`);
|
|
76
71
|
process.exit(0);
|
|
77
72
|
}
|
|
78
73
|
initializeConfig();
|
|
79
74
|
log.debug(`Loaded user config from: ${getUserConfigPath()}`);
|
|
80
|
-
if (command === "config") {
|
|
75
|
+
if (parsedArgs.command === "config") {
|
|
81
76
|
const userConfigPath = getUserConfigPath();
|
|
82
|
-
if (
|
|
77
|
+
if (parsedArgs.configPath) {
|
|
83
78
|
console.log(userConfigPath);
|
|
84
79
|
process.exit(0);
|
|
85
80
|
}
|
|
@@ -88,8 +83,7 @@ if (command === "config") {
|
|
|
88
83
|
log.info(`Opened Azul config: ${userConfigPath}`);
|
|
89
84
|
}
|
|
90
85
|
catch (error) {
|
|
91
|
-
|
|
92
|
-
process.exit(1);
|
|
86
|
+
throw new Error(`Failed to open config file: ${error}`);
|
|
93
87
|
}
|
|
94
88
|
process.exit(0);
|
|
95
89
|
}
|
|
@@ -97,8 +91,8 @@ if (command === "config") {
|
|
|
97
91
|
const currentPath = process.cwd();
|
|
98
92
|
if ((currentPath.includes(`\\${config.syncDir}`) ||
|
|
99
93
|
currentPath.includes(`/${config.syncDir}`)) &&
|
|
100
|
-
!
|
|
101
|
-
log.warn(`Looks like you're trying to run Azul from within a '${config.syncDir}' directory.
|
|
94
|
+
!parsedArgs.noWarn) {
|
|
95
|
+
log.warn(`Looks like you're trying to run Azul from within a '${config.syncDir}' directory. Running Azul here will create a directory like "/${config.syncDir}/${config.syncDir}/", which may be unintended.`);
|
|
102
96
|
log.userInput("Continue? (Y/N)");
|
|
103
97
|
await new Promise((resolve) => {
|
|
104
98
|
process.stdin.setEncoding("utf-8");
|
|
@@ -123,41 +117,59 @@ if ((currentPath.includes(`\\${config.syncDir}`) ||
|
|
|
123
117
|
});
|
|
124
118
|
}
|
|
125
119
|
log.info(`Running azul from: ${currentPath}`);
|
|
126
|
-
if (
|
|
127
|
-
config.syncDir = resolve(
|
|
128
|
-
if (
|
|
129
|
-
config.port =
|
|
130
|
-
if (
|
|
120
|
+
if (parsedArgs.syncDir)
|
|
121
|
+
config.syncDir = resolve(parsedArgs.syncDir);
|
|
122
|
+
if (parsedArgs.port)
|
|
123
|
+
config.port = parsedArgs.port;
|
|
124
|
+
if (parsedArgs.debug)
|
|
131
125
|
config.debugMode = true;
|
|
132
126
|
log.debug(`Debug mode is on!`);
|
|
133
|
-
if (command === "build") {
|
|
134
|
-
if (!
|
|
135
|
-
log.warn('Detected default.project.json! You can enable Rojo compatibility mode by passing the "--rojo" flag.');
|
|
127
|
+
if (parsedArgs.command === "build") {
|
|
128
|
+
if (!parsedArgs.rojo && fs.existsSync("default.project.json")) {
|
|
129
|
+
log.warn('Detected a default.project.json file! You can enable Rojo compatibility mode by passing the "--rojo" flag.');
|
|
136
130
|
}
|
|
137
|
-
const hasBuildSpecificOptions =
|
|
138
|
-
|
|
139
|
-
|
|
131
|
+
const hasBuildSpecificOptions = parsedArgs.rojo ||
|
|
132
|
+
Boolean(parsedArgs.rojoProject) ||
|
|
133
|
+
parsedArgs.fromSourcemap !== undefined;
|
|
134
|
+
// || parsedArgs.destructive;
|
|
135
|
+
// Don't consider passing "--destructive" as enough to bypass interactive mode,
|
|
136
|
+
// since destructive building without a sourcemap is very likely a mistake.
|
|
137
|
+
let applySourcemapProperties = true;
|
|
138
|
+
let useSourcemapAsSource = parsedArgs.fromSourcemap !== undefined;
|
|
139
|
+
let interactiveDestructive = parsedArgs.destructive;
|
|
140
140
|
if (!hasBuildSpecificOptions) {
|
|
141
141
|
const sourcemapExists = fs.existsSync(config.sourcemapPath);
|
|
142
142
|
if (sourcemapExists) {
|
|
143
143
|
log.userInput(`Build directly from ${config.sourcemapPath} (includes non-script instances)? (Y/N)`);
|
|
144
144
|
const useFull = await promptYesNo();
|
|
145
145
|
if (useFull) {
|
|
146
|
-
|
|
147
|
-
|
|
146
|
+
useSourcemapAsSource = true;
|
|
147
|
+
applySourcemapProperties = false;
|
|
148
148
|
}
|
|
149
149
|
else {
|
|
150
150
|
log.userInput(`Use packed properties/attributes from ${config.sourcemapPath}? (Y/N)`);
|
|
151
|
-
|
|
151
|
+
applySourcemapProperties = await promptYesNo();
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
154
|
else {
|
|
155
|
-
|
|
155
|
+
applySourcemapProperties = false;
|
|
156
156
|
log.info(`No sourcemap found at ${config.sourcemapPath}. Build will recreate instances as scripts/folders.`);
|
|
157
157
|
}
|
|
158
|
+
// Only ask about destructive option if we're building from sourcemap.
|
|
159
|
+
// Destructively building without a sourcemap is very likely a mistake, since it wipes everything in Studio instead of building "on top".
|
|
160
|
+
// This functionality is still possible with the "--destructive" flag if someone really wants it
|
|
161
|
+
if (useSourcemapAsSource || applySourcemapProperties) {
|
|
162
|
+
log.userInput("Destructive build (wipe everything in Studio & build from scratch)? (Y/N)");
|
|
163
|
+
interactiveDestructive = await promptYesNo();
|
|
164
|
+
}
|
|
158
165
|
}
|
|
159
|
-
if (!
|
|
160
|
-
|
|
166
|
+
if (!parsedArgs.noWarn) {
|
|
167
|
+
if (interactiveDestructive) {
|
|
168
|
+
log.warn("CAUTION: This will replace your entire Studio state with your local project (all instances, scripts, and properties). Unsaved Studio work WILL BE LOST.");
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
log.warn("CAUTION: This will overwrite matching Studio scripts/instances and create new ones from your local project. Instances with no local equivalent will be left untouched.");
|
|
172
|
+
}
|
|
161
173
|
log.userInput("Continue with build? (Y/N)");
|
|
162
174
|
await new Promise((resolve) => {
|
|
163
175
|
process.stdin.setEncoding("utf-8");
|
|
@@ -183,35 +195,34 @@ if (command === "build") {
|
|
|
183
195
|
}
|
|
184
196
|
await new BuildCommand({
|
|
185
197
|
syncDir: config.syncDir,
|
|
186
|
-
rojoMode:
|
|
187
|
-
rojoProjectFile:
|
|
188
|
-
|
|
189
|
-
|
|
198
|
+
rojoMode: parsedArgs.rojo,
|
|
199
|
+
rojoProjectFile: parsedArgs.rojoProject ?? undefined,
|
|
200
|
+
applySourcemapProperties,
|
|
201
|
+
useSourcemapAsSource,
|
|
202
|
+
sourcemapPath: parsedArgs.fromSourcemap,
|
|
203
|
+
destructive: interactiveDestructive,
|
|
190
204
|
}).run();
|
|
191
205
|
log.info("Build command completed.");
|
|
192
206
|
log.info("Run 'azul' to resume live sync if needed.");
|
|
193
207
|
log.info("Exiting...");
|
|
194
208
|
process.exit(0);
|
|
195
209
|
}
|
|
196
|
-
if (command === "push") {
|
|
197
|
-
const
|
|
198
|
-
const
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
const hasPushSpecificOptions = Boolean(sourceValue ||
|
|
202
|
-
destValue ||
|
|
203
|
-
destructive ||
|
|
210
|
+
if (parsedArgs.command === "push") {
|
|
211
|
+
const usePlaceConfig = !parsedArgs.noPlaceConfig;
|
|
212
|
+
const hasPushSpecificOptions = Boolean(parsedArgs.source ||
|
|
213
|
+
parsedArgs.destination ||
|
|
214
|
+
parsedArgs.destructive ||
|
|
204
215
|
!usePlaceConfig ||
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
let interactiveSource =
|
|
209
|
-
let interactiveDest =
|
|
210
|
-
let interactiveDestructive = destructive;
|
|
216
|
+
parsedArgs.rojo ||
|
|
217
|
+
parsedArgs.rojoProject ||
|
|
218
|
+
parsedArgs.fromSourcemap);
|
|
219
|
+
let interactiveSource = parsedArgs.source ?? undefined;
|
|
220
|
+
let interactiveDest = parsedArgs.destination ?? undefined;
|
|
221
|
+
let interactiveDestructive = parsedArgs.destructive;
|
|
211
222
|
let interactiveUsePlaceConfig = usePlaceConfig;
|
|
212
|
-
let
|
|
213
|
-
let
|
|
214
|
-
if (!hasPushSpecificOptions && !
|
|
223
|
+
let useSourcemapAsSource = !parsedArgs.rojo && parsedArgs.fromSourcemap !== undefined;
|
|
224
|
+
let applySourcemapProperties = !parsedArgs.rojo && parsedArgs.fromSourcemap === undefined;
|
|
225
|
+
if (!hasPushSpecificOptions && !parsedArgs.rojo) {
|
|
215
226
|
log.userInput("Use place config from Studio (ServerStorage.Azul.Config)? (Y/N)");
|
|
216
227
|
const useConfig = await promptYesNo();
|
|
217
228
|
interactiveUsePlaceConfig = useConfig;
|
|
@@ -224,32 +235,36 @@ if (command === "push") {
|
|
|
224
235
|
interactiveDestructive = await promptYesNo();
|
|
225
236
|
}
|
|
226
237
|
}
|
|
227
|
-
|
|
238
|
+
const willUsePlaceConfig = !parsedArgs.rojo &&
|
|
239
|
+
interactiveUsePlaceConfig &&
|
|
240
|
+
!(interactiveSource && interactiveDest);
|
|
241
|
+
if (!parsedArgs.rojo &&
|
|
242
|
+
parsedArgs.fromSourcemap === undefined &&
|
|
243
|
+
!willUsePlaceConfig) {
|
|
228
244
|
log.userInput(`Build push snapshot directly from ${config.sourcemapPath} (includes non-script descendants and ancestors)? (Y/N)`);
|
|
229
|
-
|
|
230
|
-
if (
|
|
245
|
+
useSourcemapAsSource = await promptYesNo();
|
|
246
|
+
if (useSourcemapAsSource) {
|
|
231
247
|
if (fs.existsSync(config.sourcemapPath)) {
|
|
232
248
|
log.userInput(`Apply packed properties/attributes from ${config.sourcemapPath}? (Y/N)`);
|
|
233
|
-
|
|
249
|
+
applySourcemapProperties = await promptYesNo();
|
|
234
250
|
}
|
|
235
251
|
else {
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
process.exit(1);
|
|
252
|
+
useSourcemapAsSource = false;
|
|
253
|
+
applySourcemapProperties = false;
|
|
254
|
+
throw new Error(`Sourcemap not found at "${config.sourcemapPath}"! Please create one or provide it using the "--from-sourcemap" flag.`);
|
|
240
255
|
}
|
|
241
256
|
}
|
|
242
257
|
else {
|
|
243
|
-
|
|
244
|
-
|
|
258
|
+
useSourcemapAsSource = false;
|
|
259
|
+
applySourcemapProperties = false;
|
|
245
260
|
log.info(`Not using sourcemap. Azul will recreate instances as scripts/folders based on your local filesystem structure with default Properties/Attributes.`);
|
|
246
261
|
}
|
|
247
262
|
}
|
|
248
|
-
if (!
|
|
263
|
+
if (!parsedArgs.rojo && fs.existsSync("default.project.json")) {
|
|
249
264
|
log.info("Detected default.project.json. Azul stays in native mode unless you pass --rojo.");
|
|
250
265
|
}
|
|
251
|
-
if (destructive && !
|
|
252
|
-
log.warn("
|
|
266
|
+
if (parsedArgs.destructive && !parsedArgs.noWarn) {
|
|
267
|
+
log.warn("CAUTION: Destructive push will wipe destination children before applying snapshot. Proceed? (Y/N)");
|
|
253
268
|
await new Promise((resolve) => {
|
|
254
269
|
process.stdin.setEncoding("utf-8");
|
|
255
270
|
const rl = ReadLine.createInterface({
|
|
@@ -276,24 +291,21 @@ if (command === "push") {
|
|
|
276
291
|
source: interactiveSource ?? undefined,
|
|
277
292
|
destination: interactiveDest ?? undefined,
|
|
278
293
|
destructive: interactiveDestructive,
|
|
279
|
-
usePlaceConfig:
|
|
280
|
-
rojoMode:
|
|
281
|
-
rojoProjectFile:
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
sourcemapPath:
|
|
285
|
-
? fromSourcemapValue
|
|
286
|
-
: undefined,
|
|
294
|
+
usePlaceConfig: parsedArgs.rojo ? false : interactiveUsePlaceConfig,
|
|
295
|
+
rojoMode: parsedArgs.rojo,
|
|
296
|
+
rojoProjectFile: parsedArgs.rojoProject ?? undefined,
|
|
297
|
+
applySourcemapProperties,
|
|
298
|
+
useSourcemapAsSource,
|
|
299
|
+
sourcemapPath: parsedArgs.fromSourcemap,
|
|
287
300
|
}).run();
|
|
288
301
|
log.info("Push command completed.");
|
|
289
302
|
log.info("Run 'azul' to resume live sync if needed.");
|
|
290
303
|
process.exit(0);
|
|
291
304
|
}
|
|
292
|
-
if (command === "pack") {
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
let finalOutputPath = outputValue ?? config.sourcemapPath;
|
|
305
|
+
if (parsedArgs.command === "pack") {
|
|
306
|
+
let scriptsOnly = parsedArgs.scriptsOnly;
|
|
307
|
+
const hasPackSpecificOptions = parsedArgs.output !== undefined || scriptsOnly;
|
|
308
|
+
let finalOutputPath = parsedArgs.output ?? config.sourcemapPath;
|
|
297
309
|
if (!hasPackSpecificOptions) {
|
|
298
310
|
const interactive = await promptPackInteractive(config.sourcemapPath);
|
|
299
311
|
finalOutputPath = interactive.outputPath;
|
|
@@ -306,21 +318,29 @@ if (command === "pack") {
|
|
|
306
318
|
log.info("Pack command completed.");
|
|
307
319
|
process.exit(0);
|
|
308
320
|
}
|
|
309
|
-
new SyncDaemon()
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
return argv[i + 1] ?? null;
|
|
316
|
-
}
|
|
317
|
-
if (arg.startsWith(`${flag}=`)) {
|
|
318
|
-
return arg.split("=")[1] ?? null;
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
+
const liveDaemon = new SyncDaemon();
|
|
322
|
+
liveDaemon.start();
|
|
323
|
+
let liveDaemonStopping = false;
|
|
324
|
+
const stopLiveDaemon = async (signal) => {
|
|
325
|
+
if (liveDaemonStopping) {
|
|
326
|
+
return;
|
|
321
327
|
}
|
|
322
|
-
|
|
323
|
-
}
|
|
328
|
+
liveDaemonStopping = true;
|
|
329
|
+
log.info(`Received ${signal}, shutting down...`);
|
|
330
|
+
try {
|
|
331
|
+
await liveDaemon.stop();
|
|
332
|
+
process.exit(0);
|
|
333
|
+
}
|
|
334
|
+
catch (error) {
|
|
335
|
+
throw new Error(`Failed to stop daemon cleanly: ${error}`);
|
|
336
|
+
}
|
|
337
|
+
};
|
|
338
|
+
process.on("SIGINT", () => {
|
|
339
|
+
void stopLiveDaemon("SIGINT");
|
|
340
|
+
});
|
|
341
|
+
process.on("SIGTERM", () => {
|
|
342
|
+
void stopLiveDaemon("SIGTERM");
|
|
343
|
+
});
|
|
324
344
|
function openWithDefaultEditor(targetPath) {
|
|
325
345
|
return new Promise((resolvePromise, rejectPromise) => {
|
|
326
346
|
const currentPlatform = process.platform;
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|