Skip to content

Commit 0de6d67

Browse files
authored
feat: destination-path cli argument (#92)
1 parent 507012e commit 0de6d67

File tree

6 files changed

+37
-24
lines changed

6 files changed

+37
-24
lines changed

bin/build-examples.sh

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
rm -Rf examples
22
mkdir examples
3-
cd examples
43

54
###
65
# default-server-side
76
###
87

9-
mkdir default-server-side
10-
cd default-server-side
8+
mkdir examples/default-server-side
119

12-
npx create-exposed-app \
10+
npm run build-serve \
11+
-- \
1312
--project-package-name="create-exposed-app" \
1413
--project-overview="Default server-side example of create-exposed-app" \
1514
--side="server" \
@@ -18,19 +17,25 @@ npx create-exposed-app \
1817
--author-github="iamturns" \
1918
--author-website="https://iamturns.com" \
2019
--setup-semantic-release false \
21-
--install-dependencies false
20+
--install-dependencies false \
21+
--destination-path="examples/default-server-side"
2222

23-
rm -Rf .git .eslintcache coverage dist node_modules package-lock.json
24-
cd ../
23+
rm -Rf \
24+
examples/default-server-side/.git \
25+
examples/default-server-side/.eslintcache \
26+
examples/default-server-side/coverage \
27+
examples/default-server-side/dist \
28+
examples/default-server-side/node_modules \
29+
examples/default-server-side/package-lock.json
2530

2631
###
2732
# default-client-side
2833
###
2934

30-
mkdir default-client-side
31-
cd default-client-side
35+
mkdir examples/default-client-side
3236

33-
npx create-exposed-app \
37+
npm run build-serve \
38+
-- \
3439
--project-package-name="create-exposed-app" \
3540
--project-overview="Default client-side example of create-exposed-app" \
3641
--side="client" \
@@ -39,7 +44,13 @@ npx create-exposed-app \
3944
--author-github="iamturns" \
4045
--author-website="https://iamturns.com" \
4146
--setup-semantic-release false \
42-
--install-dependencies false
43-
44-
rm -Rf .git .eslintcache coverage dist node_modules package-lock.json
45-
cd ../
47+
--install-dependencies false \
48+
--destination-path="examples/default-client-side"
49+
50+
rm -Rf \
51+
examples/default-server-side/.git \
52+
examples/default-server-side/.eslintcache \
53+
examples/default-server-side/coverage \
54+
examples/default-server-side/dist \
55+
examples/default-server-side/node_modules \
56+
examples/default-server-side/package-lock.json

src/create-exposed-app-cli.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ async function main(): Promise<void> {
2828
authorWebsite: args["author-website"],
2929
skipInstallDependencies: !args["install-dependencies"],
3030
skipSetupSemanticRelease: !args["setup-semantic-release"],
31+
destinationPath: args["destination-path"],
3132
}
3233

3334
validateOptions(maybeOptions)

src/create-exposed-app/args.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ export interface Args {
88
"author-email"?: string
99
"author-github"?: string
1010
"author-website"?: string
11-
"install-dependencies": boolean
1211
"setup-semantic-release": boolean
12+
"install-dependencies": boolean
13+
"destination-path": string
1314
}
1415

1516
const options = {
@@ -60,6 +61,11 @@ const options = {
6061
default: true,
6162
prompt: "never",
6263
},
64+
"destination-path": {
65+
describe: "Destination path",
66+
type: "input",
67+
prompt: "never",
68+
},
6369
}
6470

6571
export async function getArgs(): Promise<Args> {

src/create-exposed-app/create-exposed-app.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ export async function createExposedApp(options: AppOptionsUser): Promise<void> {
2323
const context = createAppContext(processedOptions)
2424
logDebug("Context: %o", context)
2525

26+
process.chdir(context.options.destinationPath)
27+
2628
const stepsToExecute: StepFunction[] = [
2729
executeStepGit,
2830
executeStepCopyTemplate,

src/create-exposed-app/steps/copy-template/copy-template.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ async function executeCopy(context: AppContext): Promise<CopyOperation[]> {
2020
try {
2121
const copyResults = await copy(
2222
context.templatesPath,
23-
context.options.destinationPath,
23+
"./",
2424
context.viewData,
2525
)
2626
logMessage(`${copyResults.length} file(s) copied`)

src/create-exposed-app/steps/git.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,7 @@ import { AppContext } from "../context"
77
import { ViewData } from "../view-data/view-data"
88

99
export function executeStepGit(context: AppContext): Promise<AppContext> {
10-
const gitDir = calcGitDir(context.options.destinationPath)
11-
logDebug("Git dir: %s", gitDir)
12-
13-
if (pathExists(gitDir)) {
10+
if (pathExists(".git")) {
1411
logDebug("Git already setup, skipping...")
1512
return Promise.resolve(context)
1613
}
@@ -26,10 +23,6 @@ export function executeStepGit(context: AppContext): Promise<AppContext> {
2623
return Promise.resolve(context)
2724
}
2825

29-
function calcGitDir(filePath: string): string {
30-
return path.resolve(filePath, ".git")
31-
}
32-
3326
function calcOrigin(viewData: ViewData): string {
3427
return `[email protected]:${viewData.authorGitHub}/${
3528
viewData.projectPackageName

0 commit comments

Comments
 (0)