@@ -30,6 +30,10 @@ const parsed = parseArgs({
30
30
pull : {
31
31
type : 'boolean' ,
32
32
short : 'p'
33
+ } ,
34
+ owner : {
35
+ type : 'string' ,
36
+ default : 'sveltejs'
33
37
}
34
38
} ,
35
39
strict : true ,
@@ -40,11 +44,23 @@ const dirname = fileURLToPath(new URL('.', import.meta.url));
40
44
const REPOS = path . join ( dirname , '../../repos' ) ;
41
45
const DOCS = path . join ( dirname , '../../content/docs' ) ;
42
46
47
+ const branches = { } ;
48
+
49
+ for ( const option of parsed . positionals ) {
50
+ const [ name , ...rest ] = option . split ( '#' ) ;
51
+
52
+ if ( branches [ name ] ) {
53
+ throw new Error ( `Duplicate branches for ${ name } ` ) ;
54
+ }
55
+
56
+ branches [ name ] = rest . join ( '#' ) || 'main' ;
57
+ }
58
+
43
59
const packages : Package [ ] = [
44
60
{
45
61
name : 'svelte' ,
46
- repo : 'sveltejs /svelte' ,
47
- branch : 'main' ,
62
+ repo : ` ${ parsed . values . owner } /svelte` ,
63
+ branch : branches [ 'svelte' ] ?? 'main' ,
48
64
pkg : 'packages/svelte' ,
49
65
docs : 'documentation/docs' ,
50
66
types : 'types' ,
@@ -67,8 +83,8 @@ const packages: Package[] = [
67
83
} ,
68
84
{
69
85
name : 'kit' ,
70
- repo : 'sveltejs /kit' ,
71
- branch : 'main' ,
86
+ repo : ` ${ parsed . values . owner } /kit` ,
87
+ branch : branches [ 'kit' ] ?? 'main' ,
72
88
pkg : 'packages/kit' ,
73
89
docs : 'documentation/docs' ,
74
90
types : 'types' ,
@@ -127,15 +143,15 @@ const packages: Package[] = [
127
143
} ,
128
144
{
129
145
name : 'cli' ,
130
- repo : 'sveltejs /cli' ,
131
- branch : 'main' ,
146
+ repo : ` ${ parsed . values . owner } /cli` ,
147
+ branch : branches [ 'cli' ] ?? 'main' ,
132
148
pkg : 'packages/cli' ,
133
149
docs : 'documentation/docs' ,
134
150
types : null
135
151
}
136
152
] ;
137
153
138
- const unknown = parsed . positionals . filter ( ( name ) => ! packages . some ( ( pkg ) => pkg . name === name ) ) ;
154
+ const unknown = Object . keys ( branches ) . filter ( ( name ) => ! packages . some ( ( pkg ) => pkg . name === name ) ) ;
139
155
140
156
if ( unknown . length > 0 ) {
141
157
throw new Error (
@@ -144,9 +160,7 @@ if (unknown.length > 0) {
144
160
}
145
161
146
162
const filtered =
147
- parsed . positionals . length === 0
148
- ? packages
149
- : packages . filter ( ( pkg ) => parsed . positionals . includes ( pkg . name ) ) ;
163
+ parsed . positionals . length === 0 ? packages : packages . filter ( ( pkg ) => ! ! branches [ pkg . name ] ) ;
150
164
151
165
/**
152
166
* Depending on your setup, this will either clone the Svelte and SvelteKit repositories
0 commit comments