Compare commits
90 Commits
Author | SHA1 | Date | |
---|---|---|---|
6a7b4c8b7e | |||
25c0162c39 | |||
e66d1f05e4 | |||
b1a8a5527e | |||
0017781516 | |||
da0cd0ed71 | |||
4890afb2f0 | |||
77bb8bf22e | |||
ff2ebc076d | |||
d71b082b75 | |||
f6680dc45e | |||
cb4a02d1ef | |||
9e39444daa | |||
6ec5d275bb | |||
f5d78f3b40 | |||
68546939ca | |||
08e9849116 | |||
f25ade3e97 | |||
6870c40e57 | |||
5e99a37a55 | |||
44d1cefc9f | |||
83bafbb6f6 | |||
b90234e226 | |||
a039a58f8e | |||
d861fcb2d4 | |||
3a1138da83 | |||
bdbd2b6e08 | |||
43f5643ab1 | |||
99e4dcb2e8 | |||
52f6afb69a | |||
75c1e3d8f2 | |||
2a1ed874b2 | |||
58fb0bc3d5 | |||
b1fbd38dba | |||
fad5e046d3 | |||
eb1498c242 | |||
6b3d4d1ecf | |||
16ea9bb8bd | |||
7e7aa098f9 | |||
df4350d29d | |||
81eb713dee | |||
90637b1466 | |||
6c3b78d0fe | |||
f0c7cf34e6 | |||
b9b5736e5e | |||
b73acf904a | |||
6614529122 | |||
9ff5e9a70f | |||
9dbf511d50 | |||
b7a239abca | |||
181fad27fd | |||
59c3deb83a | |||
c76403a34c | |||
23b361f26a | |||
9f7d447bc7 | |||
8904bf9427 | |||
3c5a8282ab | |||
4f0fb26a15 | |||
00f06b48f3 | |||
74f4cb3034 | |||
b98dc7a9fa | |||
924470407a | |||
f346a397d5 | |||
c05f2d35e5 | |||
c0a409bbc9 | |||
7cb798077d | |||
fc4409bea4 | |||
27ee8195e8 | |||
2f80abafc2 | |||
0d95cda8b5 | |||
4a9d98b3f9 | |||
c99ff2556e | |||
f1d75a3aba | |||
377fa83fe7 | |||
8199c6c2cc | |||
3ef785438e | |||
d8fe8bae64 | |||
ad4175b3f9 | |||
707c1718a3 | |||
7e0df65de6 | |||
fe30629ff9 | |||
05bf7aa9d6 | |||
847798e9c9 | |||
b797fca1fc | |||
ae46afdee6 | |||
ceddc23423 | |||
4f8ca3fe5e | |||
947fe781d8 | |||
1c7fbb073d | |||
9b05252045 |
3
.gitignore
vendored
3
.gitignore
vendored
@ -3,7 +3,6 @@
|
||||
# artifacts
|
||||
coverage/
|
||||
public/
|
||||
pages/
|
||||
|
||||
# installs
|
||||
node_modules/
|
||||
@ -17,4 +16,4 @@ node_modules/
|
||||
dist/
|
||||
dist_*/
|
||||
|
||||
# custom
|
||||
#------# custom
|
1
assets/overrides.json
Normal file
1
assets/overrides.json
Normal file
@ -0,0 +1 @@
|
||||
{}
|
@ -6,8 +6,8 @@ on:
|
||||
- '**'
|
||||
|
||||
env:
|
||||
IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci
|
||||
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{git.host}}/${-{gitea.repository}-}.git
|
||||
IMAGE: code.foss.global/host.today/ht-docker-node:npmci
|
||||
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{module.githost}}/${-{gitea.repository}-}.git
|
||||
NPMCI_TOKEN_NPM: ${-{secrets.NPMCI_TOKEN_NPM}-}
|
||||
NPMCI_TOKEN_NPM2: ${-{secrets.NPMCI_TOKEN_NPM2}-}
|
||||
NPMCI_GIT_GITHUBTOKEN: ${-{secrets.NPMCI_GIT_GITHUBTOKEN}-}
|
||||
|
@ -6,8 +6,8 @@ on:
|
||||
- '*'
|
||||
|
||||
env:
|
||||
IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci
|
||||
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{git.host}}/${-{gitea.repository}-}.git
|
||||
IMAGE: code.foss.global/host.today/ht-docker-node:npmci
|
||||
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{module.githost}}/${-{gitea.repository}-}.git
|
||||
NPMCI_TOKEN_NPM: ${-{secrets.NPMCI_TOKEN_NPM}-}
|
||||
NPMCI_TOKEN_NPM2: ${-{secrets.NPMCI_TOKEN_NPM2}-}
|
||||
NPMCI_GIT_GITHUBTOKEN: ${-{secrets.NPMCI_GIT_GITHUBTOKEN}-}
|
||||
|
@ -7,7 +7,7 @@ on:
|
||||
|
||||
env:
|
||||
IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci
|
||||
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{git.host}}/${-{gitea.repository}-}.git
|
||||
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{module.githost}}/${-{gitea.repository}-}.git
|
||||
NPMCI_TOKEN_NPM: ${-{secrets.NPMCI_TOKEN_NPM}-}
|
||||
NPMCI_TOKEN_NPM2: ${-{secrets.NPMCI_TOKEN_NPM2}-}
|
||||
NPMCI_GIT_GITHUBTOKEN: ${-{secrets.NPMCI_GIT_GITHUBTOKEN}-}
|
||||
|
@ -7,7 +7,7 @@ on:
|
||||
|
||||
env:
|
||||
IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci
|
||||
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{git.host}}/${-{gitea.repository}-}.git
|
||||
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{module.githost}}/${-{gitea.repository}-}.git
|
||||
NPMCI_TOKEN_NPM: ${-{secrets.NPMCI_TOKEN_NPM}-}
|
||||
NPMCI_TOKEN_NPM2: ${-{secrets.NPMCI_TOKEN_NPM2}-}
|
||||
NPMCI_GIT_GITHUBTOKEN: ${-{secrets.NPMCI_GIT_GITHUBTOKEN}-}
|
||||
|
@ -7,7 +7,7 @@ on:
|
||||
|
||||
env:
|
||||
IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci
|
||||
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{gi.host}}/${-{gitea.repository}-}.git
|
||||
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{module.githost}}/${-{gitea.repository}-}.git
|
||||
NPMCI_TOKEN_NPM: ${-{secrets.NPMCI_TOKEN_NPM}-}
|
||||
NPMCI_TOKEN_NPM2: ${-{secrets.NPMCI_TOKEN_NPM2}-}
|
||||
NPMCI_GIT_GITHUBTOKEN: ${-{secrets.NPMCI_GIT_GITHUBTOKEN}-}
|
||||
|
@ -7,7 +7,7 @@ on:
|
||||
|
||||
env:
|
||||
IMAGE: code.foss.global/hosttoday/ht-docker-node:npmci
|
||||
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{git.host}}/${-{gitea.repository}-}.git
|
||||
NPMCI_COMPUTED_REPOURL: https://${-{gitea.repository_owner}-}:${-{secrets.GITEA_TOKEN}-}@{{module.githost}}/${-{gitea.repository}-}.git
|
||||
NPMCI_TOKEN_NPM: ${-{secrets.NPMCI_TOKEN_NPM}-}
|
||||
NPMCI_TOKEN_NPM2: ${-{secrets.NPMCI_TOKEN_NPM2}-}
|
||||
NPMCI_GIT_GITHUBTOKEN: ${-{secrets.NPMCI_GIT_GITHUBTOKEN}-}
|
||||
@ -89,8 +89,8 @@ jobs:
|
||||
npmci docker login
|
||||
npmci docker build
|
||||
npmci docker test
|
||||
# npmci docker push {{git.host}}
|
||||
npmci docker push {{git.host}}
|
||||
# npmci docker push {{module.githost}}
|
||||
npmci docker push {{module.githost}}
|
||||
|
||||
metadata:
|
||||
needs: test
|
||||
|
@ -1,6 +1,6 @@
|
||||
# gitzone dockerfile_service
|
||||
## STAGE 1 // BUILD
|
||||
FROM code.foss.global/hosttoday/ht-docker-node:npmci as node1
|
||||
FROM code.foss.global/host.today/ht-docker-node:npmci as node1
|
||||
COPY ./ /app
|
||||
WORKDIR /app
|
||||
ARG NPMCI_TOKEN_NPM2
|
||||
@ -12,7 +12,7 @@ RUN pnpm run build
|
||||
|
||||
# gitzone dockerfile_service
|
||||
## STAGE 2 // install production
|
||||
FROM code.foss.global/hosttoday/ht-docker-node:npmci as node2
|
||||
FROM code.foss.global/host.today/ht-docker-node:npmci as node2
|
||||
WORKDIR /app
|
||||
COPY --from=node1 /app /app
|
||||
RUN rm -rf .pnpm-store
|
||||
@ -24,7 +24,7 @@ RUN rm -rf node_modules/ && pnpm install --prod
|
||||
|
||||
|
||||
## STAGE 3 // rebuild dependencies for alpine
|
||||
FROM code.foss.global/hosttoday/ht-docker-node:alpinenpmci as node3
|
||||
FROM code.foss.global/host.today/ht-docker-node:alpine_npmci as node3
|
||||
WORKDIR /app
|
||||
COPY --from=node2 /app /app
|
||||
ARG NPMCI_TOKEN_NPM2
|
||||
@ -34,7 +34,7 @@ RUN pnpm config set store-dir .pnpm-store
|
||||
RUN pnpm rebuild -r
|
||||
|
||||
## STAGE 4 // the final production image with all dependencies in place
|
||||
FROM code.foss.global/hosttoday/ht-docker-node:alpine as node4
|
||||
FROM code.foss.global/host.today/ht-docker-node:alpine as node4
|
||||
WORKDIR /app
|
||||
COPY --from=node3 /app /app
|
||||
|
||||
|
@ -6,7 +6,6 @@ fileName: .gitignore
|
||||
# artifacts
|
||||
coverage/
|
||||
public/
|
||||
pages/
|
||||
|
||||
# installs
|
||||
node_modules/
|
||||
@ -20,4 +19,4 @@ node_modules/
|
||||
dist/
|
||||
dist_*/
|
||||
|
||||
# custom
|
||||
#------# custom
|
8
assets/templates/npm/ts/paths.ts
Normal file
8
assets/templates/npm/ts/paths.ts
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
fileName: paths.ts
|
||||
---
|
||||
import * as plugins from './plugins.js';
|
||||
export const packageDir = plugins.path.join(
|
||||
plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url),
|
||||
'../'
|
||||
);
|
12
assets/templates/npm/ts/plugins.ts
Normal file
12
assets/templates/npm/ts/plugins.ts
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
fileName: plugins.ts
|
||||
---
|
||||
// native scope
|
||||
import * as path from 'path';
|
||||
|
||||
export { path };
|
||||
|
||||
// @push.rocks scope
|
||||
import * as smartpath from '@push.rocks/smartpath';
|
||||
|
||||
export { smartpath };
|
@ -1,7 +0,0 @@
|
||||
---
|
||||
fileName: {{module.name}}.plugins.ts
|
||||
---
|
||||
const removeme = {};
|
||||
export {
|
||||
removeme
|
||||
}
|
@ -21,14 +21,14 @@ fileName: package.json
|
||||
"@git.zone/tsrun": "^1.2.8",
|
||||
"@git.zone/tstest": "^1.0.28",
|
||||
"@git.zone/tswatch": "^2.0.1",
|
||||
"@push.rocks/tapbundle": "^5.0.3"
|
||||
"@push.rocks/tapbundle": "^5.5.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"@api.global/typedserver": "^1.0.24",
|
||||
"@api.global/typedserver": "^3.0.53",
|
||||
"@push.rocks/projectinfo": "^5.0.1",
|
||||
"@push.rocks/qenv": "^4.0.10",
|
||||
"@push.rocks/qenv": "^6.1.0",
|
||||
"@push.rocks/smartdata": "^5.0.7",
|
||||
"@push.rocks/smartpath": "^5.0.5",
|
||||
"@push.rocks/smartstate": "^2.0.0"
|
||||
}
|
||||
},
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
---
|
||||
fileName: {{module.name}}.classes.{{module.name}}db.ts
|
||||
fileName: classes.{{module.name}}db.ts
|
||||
---
|
||||
import * as plugins from './{{module.name}}.plugins.js';
|
||||
import { {{module.name}} } from './{{module.name}}.classes.{{module.name}}.js';
|
||||
import { {{module.name}} } from './classes.{{module.name}}.js';
|
||||
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
---
|
||||
fileName: {{module.name}}.classes.{{module.name}}.ts
|
||||
fileName: classes.{{module.name}}.ts
|
||||
---
|
||||
import * as plugins from './{{module.name}}.plugins.js';
|
||||
import * as paths from './{{module.name}}.paths.js';
|
||||
import { {{module.name}}Db } from './{{module.name}}.db.js'
|
||||
import { {{module.name}}Db } from './classes.{{module.name}}db.js'
|
||||
|
||||
export class {{module.name}} {
|
||||
public projectinfo: plugins.projectinfo.ProjectInfo;
|
@ -15,8 +15,7 @@ export {
|
||||
loleServiceserver
|
||||
}
|
||||
|
||||
// pushrocks scope
|
||||
// pushrocks scope
|
||||
// @push.rocks scope
|
||||
import * as projectinfo from '@push.rocks/projectinfo';
|
||||
import * as qenv from '@push.rocks/qenv';
|
||||
import * as smartdata from '@push.rocks/smartdata';
|
||||
|
2
assets/templates/tsconfig_update/.smartscaf.yml
Normal file
2
assets/templates/tsconfig_update/.smartscaf.yml
Normal file
@ -0,0 +1,2 @@
|
||||
runafter:
|
||||
- gitzone format
|
@ -1,6 +1,7 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"experimentalDecorators": true,
|
||||
"emitDecoratorMetadata": true,
|
||||
"useDefineForClassFields": false,
|
||||
"target": "ES2022",
|
||||
"module": "NodeNext",
|
||||
|
2
assets/templates/wcc/ts_web/pages/index.ts
Normal file
2
assets/templates/wcc/ts_web/pages/index.ts
Normal file
@ -0,0 +1,2 @@
|
||||
export * from './page2.js';
|
||||
export * from './page1.js';
|
5
assets/templates/wcc/ts_web/pages/page1.ts
Normal file
5
assets/templates/wcc/ts_web/pages/page1.ts
Normal file
@ -0,0 +1,5 @@
|
||||
import { html } from "@design.estate/dees-element";
|
||||
|
||||
export const page1 = () => html`
|
||||
<first-element></first-element>
|
||||
`;
|
5
assets/templates/wcc/ts_web/pages/page2.ts
Normal file
5
assets/templates/wcc/ts_web/pages/page2.ts
Normal file
@ -0,0 +1,5 @@
|
||||
import { html } from "@design.estate/dees-element";
|
||||
|
||||
export const page2 = () => html`
|
||||
<first-element></first-element>
|
||||
`;
|
@ -18,12 +18,12 @@ fileName: package.json
|
||||
"author": "{{author.name}}",
|
||||
"license": "{{module.license}}",
|
||||
"dependencies": {
|
||||
"@api.global/typedserver": "^1.0.16",
|
||||
"@api.global/typedserver": "^3.0.51",
|
||||
"@consentsoftware_private/catalog": "^1.0.73",
|
||||
"@design.estate/dees-domtools": "^2.0.23",
|
||||
"@design.estate/dees-element": "^2.0.15",
|
||||
"@push.rocks/smartlog": "^2.0.1",
|
||||
"@push.rocks/qenv": "^5.0.2",
|
||||
"@push.rocks/qenv": "^6.0.5",
|
||||
"@push.rocks/smartlog": "^3.0.7",
|
||||
"@push.rocks/smartpath": "^5.0.5",
|
||||
"@push.rocks/smartstate": "^2.0.0",
|
||||
"@push.rocks/websetup": "^3.0.15"
|
||||
|
@ -3,10 +3,10 @@ import * as paths from './ffb.paths.js';
|
||||
|
||||
export const runCli = async () => {
|
||||
const serviceQenv = new plugins.qenv.Qenv('./', './.nogit', false);
|
||||
const websiteServer = new plugins.loleWebsiteserver.LoleWebsiteServer({
|
||||
const websiteServer = new plugins.typedserver.utilityservers.UtilityWebsiteServer({
|
||||
feedMetadata: null,
|
||||
domain: '{{module.projectDomain}}',
|
||||
serveDir: paths.distWebDir
|
||||
serveDir: paths.distWebDir,
|
||||
});
|
||||
await websiteServer.start();
|
||||
};
|
||||
|
@ -6,7 +6,7 @@ import {
|
||||
cssManager,
|
||||
unsafeCSS,
|
||||
css,
|
||||
TemplateResult,
|
||||
type TemplateResult,
|
||||
} from '@design.estate/dees-element';
|
||||
|
||||
@customElement('default-header')
|
||||
|
@ -45,7 +45,7 @@ const run = async () => {
|
||||
},
|
||||
});
|
||||
|
||||
const serviceWorker = serviceworker.getServiceWorker();
|
||||
const serviceWorker = serviceworker.getServiceworkerClient();
|
||||
|
||||
const mainTemplate = html`
|
||||
<style>
|
||||
|
291
changelog.md
291
changelog.md
@ -1,32 +1,283 @@
|
||||
# Changelog
|
||||
|
||||
## 2024-06-23 - 1.9.111 - fix(dependencies)
|
||||
Update @git.zone/tsdoc to version 1.3.4
|
||||
- Updated @git.zone/tsdoc in package.json from version 1.3.2 to 1.3.4.
|
||||
- Updated pnpm-lock.yaml to reflect the @git.zone/tsdoc version bump.
|
||||
- Ensured all relevant dependencies and transitive dependencies reflect the new @git.zone/tsdoc version.
|
||||
## 2025-04-15 - 1.15.3 - fix(deps)
|
||||
update dependency versions and improve website template variable handling
|
||||
|
||||
- Bumped @git.zone/tsbuild from ^2.2.1 to ^2.3.2 and @types/node to ^22.14.1
|
||||
- Upgraded @push.rocks/smartscaf from ^4.0.15 to ^4.0.16 and prettier from ^3.5.2 to ^3.5.3
|
||||
- Refactored website template update to correctly supply variables with added logging
|
||||
|
||||
## 2025-04-15 - 1.15.2 - fix(website_update)
|
||||
Await supplyVariables call in website update template
|
||||
|
||||
- Changed website template update to properly await the supplyVariables method
|
||||
- Ensured asynchronous consistency in updating website template variables
|
||||
|
||||
## 2025-04-15 - 1.15.1 - fix(cli)
|
||||
Refresh internal CLI tooling and configuration for consistency.
|
||||
|
||||
|
||||
## 2024-06-23 - 1.9.110 - fix(changelog)
|
||||
Remove outdated entries and adjust formatting in changelog
|
||||
- Removed outdated entries from changelog
|
||||
- Adjusted changelog formatting for clarity
|
||||
## 2025-04-15 - 1.15.0 - feat(config/template)
|
||||
Add assetbrokerUrl and legalUrl fields to module config and update website template to supply these values
|
||||
|
||||
- Added assetbrokerUrl and legalUrl properties in ts/classes.gitzoneconfig.ts
|
||||
- Updated ts/mod_format/format.templates.ts to pass assetbrokerUrl and legalUrl to website template
|
||||
|
||||
## 2025-04-15 - 1.14.1 - fix(package.json)
|
||||
Add packageManager field to specify pnpm version for consistent package management
|
||||
|
||||
- Inserted packageManager property in package.json with pnpm version info to ensure reproducible dependency installs
|
||||
|
||||
## 2025-04-15 - 1.14.0 - feat(tsconfig_update)
|
||||
Add runafter directive to trigger gitzone format after tsconfig update
|
||||
|
||||
- Added runafter configuration in assets/templates/tsconfig_update/.smartscaf.yml to automate formatting task
|
||||
|
||||
## 2025-03-07 - 1.13.1 - fix(cli)
|
||||
Improve commit message logging
|
||||
|
||||
- Updated logging to display recommended next commit details.
|
||||
- Enabled interactive prompt for choosing commit type and scope.
|
||||
|
||||
## 2025-02-28 - 1.13.0 - feat(templates)
|
||||
Updated and added new TypeScript template files for npm projects
|
||||
|
||||
- Added new paths.ts and plugins.ts template files for npm projects.
|
||||
- Removed outdated some.plugins.ts template file.
|
||||
|
||||
## 2025-02-25 - 1.12.8 - fix(metadata)
|
||||
Updated package and npmextra json description and keywords for enhanced development workflow clarity
|
||||
|
||||
- Updated the description in package.json to focus on project setup and management.
|
||||
- Aligned the keywords in both package.json and npmextra.json to include more relevant terms such as gitzone utilities, template management, and CI/CD.
|
||||
|
||||
## 2025-02-25 - 1.12.7 - fix(meta)
|
||||
Fix issues in project metadata and configuration.
|
||||
|
||||
- Updated package metadata to ensure accurate project description and licensing.
|
||||
- Ensured npm access level configuration consistency within npmextra.json.
|
||||
|
||||
## 2025-02-25 - 1.12.7 - fix(ci)
|
||||
Updated dependencies and added CI/CD workflows.
|
||||
|
||||
- Updated several dependencies in package.json for compatibility and security.
|
||||
- Added default GitHub and GitLab CI/CD workflow files to the test directory.
|
||||
- Introduced a .gitignore file to exclude certain directories and files.
|
||||
- Ensured consistent formatting with Prettier and TypeScript configurations.
|
||||
|
||||
## 2025-01-29 - 1.12.6 - fix(project)
|
||||
Minor fixes and cleanup
|
||||
|
||||
- Removed outdated pages/ directory entry in .gitignore.
|
||||
- Adjusted Docker module files to include proper newlines.
|
||||
- Updated TypeScript configuration for modular paths.
|
||||
- Fixed formatting issues across various TypeScript files.
|
||||
|
||||
## 2025-01-29 - 1.12.5 - fix(cli)
|
||||
Initial implementation of CLI utility with project management features
|
||||
|
||||
- Integration of various plugins for logging, command-line interactions, and project management.
|
||||
- Setup CLI commands for project initialization, updating, formatting, and more.
|
||||
- Implement commands for packaging, versioning, and deprecating npm packages.
|
||||
|
||||
## 2025-01-29 - 1.12.2 - fix(format)
|
||||
Add overrides for peek-readable in package.json formatting
|
||||
|
||||
- Added a URL correction in the packageJson repository information.
|
||||
- Introduced support for pnpm overrides by including an `overrides.json` file.
|
||||
|
||||
## 2025-01-18 - 1.12.1 - fix(dependencies)
|
||||
Update various package dependencies and Dockerfile base image
|
||||
|
||||
- Updated Dockerfile base image from 'alpinenpmci' to 'alpine_npmci'.
|
||||
- Upgraded @git.zone/tsbuild, @git.zone/tsrun, @git.zone/tsdoc, and other dependencies to their latest versions.
|
||||
|
||||
## 2025-01-17 - 1.12.0 - feat(build)
|
||||
Update TypeScript configuration to support emit decorator metadata
|
||||
|
||||
- Added emitDecoratorMetadata to the tsconfig.json template in assets/templates/tsconfig_update.
|
||||
|
||||
## 2025-01-08 - 1.11.0 - feat(cli)
|
||||
Add Docker command for cleaning up Docker system and extend deprecation command for multiple registries
|
||||
|
||||
- Added a new command 'docker' to handle Docker system cleanup operations.
|
||||
- Improved the 'deprecate' command to support deprecating packages across multiple npm registry URLs.
|
||||
|
||||
## 2025-01-01 - 1.10.10 - fix(templates)
|
||||
Corrected typo in template file comment
|
||||
|
||||
- Fixed repeated comment in the template file for services under 'assets/templates/service/ts/some.plugins.ts'.
|
||||
|
||||
## 2025-01-01 - 1.10.9 - fix(templates)
|
||||
Correct template file paths and organization for service projects
|
||||
|
||||
- Moved 'some.classes.some.ts' to 'classes.some.ts'
|
||||
- Moved 'some.classes.some.db.ts' to 'classes.some.db.ts'
|
||||
- Resolved incorrect import paths in service templates
|
||||
|
||||
## 2025-01-01 - 1.10.8 - fix(assets/templates)
|
||||
Update CI template configurations to use module.githost
|
||||
|
||||
- Replaced occurrences of {{git.host}} with {{module.githost}} in CI workflow files
|
||||
- Updated package dependencies for service template
|
||||
|
||||
## 2024-12-26 - 1.10.7 - fix(assets)
|
||||
Correct URLs in templates and fix TypeScript declaration
|
||||
|
||||
- Updated incorrect URLs in Dockerfile templates to 'host.today'.
|
||||
- Fixed type declaration for 'TemplateResult' in header.ts file.
|
||||
|
||||
## 2024-12-08 - 1.10.6 - fix(ci)
|
||||
Corrected Docker image URL in CI templates
|
||||
|
||||
- Updated Docker image URL from 'code.foss.global/hosttoday' to 'code.foss.global/host.today' in default_nottags.yaml and default_tags.yaml.
|
||||
- Adjusted gitignore template to include a custom section delineation.
|
||||
|
||||
## 2024-12-02 - 1.10.5 - fix(assets)
|
||||
Update .gitignore template to remove pages directory
|
||||
|
||||
- Removed 'pages/' from the ignored directories in the .gitignore template.
|
||||
|
||||
## 2024-11-05 - 1.10.4 - fix(mod_format)
|
||||
Correct file extension for TypeScript path configuration
|
||||
|
||||
- Fixed the TypeScript configuration to use correct file extensions for module subdirectories.
|
||||
|
||||
## 2024-10-27 - 1.10.3 - fix(mod_format)
|
||||
Reorder TypeScript formatting steps in mod_format module
|
||||
|
||||
- Moved TypeScript configuration formatting earlier in the sequence for better logical consistency.
|
||||
|
||||
## 2024-10-27 - 1.10.2 - fix(format)
|
||||
Add logging for tsconfig.json formatting
|
||||
|
||||
- Added an info log message for tsconfig.json formatting in format.tsconfig.ts.
|
||||
|
||||
## 2024-10-27 - 1.10.1 - fix(format)
|
||||
Fixed async issue in tsconfig module lookup and corrected property access
|
||||
|
||||
|
||||
## 2023-xx-xx - 1.9.109 - dependencies
|
||||
Updated @git.zone/tsdoc dependency to version 1.3.2.
|
||||
## 2024-10-27 - 1.10.0 - feat(mod_format)
|
||||
Add support for tsconfig.json formatting
|
||||
|
||||
- Ensured compatibility with the latest version of @git.zone/tsdoc.
|
||||
- Added a new script to format tsconfig.json.
|
||||
- Updated package.json to include `@git.zone/tspublish` as a dependency.
|
||||
|
||||
## 2023-xx-xx - 1.9.103 - logging
|
||||
Optimized logger instantiation and configuration.
|
||||
## 2024-10-23 - 1.9.126 - fix(format)
|
||||
Remove redundant package.json property checks
|
||||
|
||||
- Improved application performance by refining logger setup.
|
||||
- Reduced initialization time for logging components.
|
||||
- Removed property checks for `main`, `typings`, and `browserslist` from format.packagejson.ts
|
||||
- This change streamlines the formatting process by removing unnecessary exits
|
||||
|
||||
## 2023-xx-xx - 1.9.102 - metadata
|
||||
Ensured accurate project metadata in package.json.
|
||||
## 2024-09-29 - 1.9.125 - fix(cli)
|
||||
Fix package version configuration and formatting issues
|
||||
|
||||
- Corrected metadata fields to better reflect project details.
|
||||
- Updated author and version information for consistency.
|
||||
- Updated metadata fields in package.json (repository URL, bugs URL, and homepage).
|
||||
- Ensured presence and correctness of essential fields in package.json (main, typings, files, scripts, etc.).
|
||||
- Added missing Prettier default TypeScript and Markdown configurations.
|
||||
|
||||
## 2024-09-27 - 1.9.124 - fix(cli)
|
||||
Ensured proper existence and initialization of readme files
|
||||
|
||||
- Ensured readme.md and readme.hints.md files are created and initialized if they do not exist.
|
||||
|
||||
## 2024-09-27 - 1.9.123 - fix(core)
|
||||
No changes detected
|
||||
|
||||
|
||||
## 2024-09-27 - 1.9.123 - fix(core)
|
||||
Update dependencies and improve build configurations
|
||||
|
||||
- Updated several dependencies in package.json for better compatibility
|
||||
- Changed typedserver dependency version in website template
|
||||
- Adjusted website server and service worker in templates
|
||||
- Added security and test workflows for Gitea repositories
|
||||
- Added and configured .gitignore, .npmrc, .vscode settings for the project
|
||||
- Provided initial structure for readme and readme hints
|
||||
|
||||
## 2024-06-24 - 1.9.122 - fix(mod_commit)
|
||||
Update package.json dependencies: @git.zone/tsdoc and @push.rocks/smartpromise to latest versions.
|
||||
|
||||
- - Updated @git.zone/tsdoc to ^1.3.12
|
||||
- - Updated @push.rocks/smartfile to ^11.0.21
|
||||
|
||||
## 2024-06-23 - 1.9.121 - fix(mod_commit)
|
||||
Fix changelog template rendering by removing extra new line when no version details are provided.
|
||||
|
||||
- Update package.json dependencies: @git.zone/tsdoc and @push.rocks/smartpromise to latest versions.
|
||||
|
||||
## 2024-06-23 - 1.9.120 - fix(mod_commit)
|
||||
Handle edge case for empty version details in changelog formatting
|
||||
|
||||
- Added check for the length of the recommendedNextVersionDetails array
|
||||
- Ensure no extra newline in changelog if there are no version details
|
||||
|
||||
## 2024-06-23 - 1.9.119 - fix(dependencies)
|
||||
Update @git.zone/tsdoc to v1.3.8
|
||||
|
||||
- Updated @git.zone/tsdoc from v1.3.7 to v1.3.8 in package.json
|
||||
|
||||
## 2024-06-23 - 1.9.118 - fix(dependencies)
|
||||
Update @git.zone/tsdoc to version 1.3.7
|
||||
|
||||
- Bump @git.zone/tsdoc from 1.3.6 to 1.3.7 in both package.json and pnpm-lock.yaml
|
||||
|
||||
## 2024-06-23 - 1.9.117 - fix(dependencies)
|
||||
Update @git.zone/tsdoc dependency to v1.3.6
|
||||
|
||||
- Updated @git.zone/tsdoc version from 1.3.5 to 1.3.6 in package.json
|
||||
- Updated pnpm-lock.yaml to reflect the new version of @git.zone/tsdoc
|
||||
|
||||
## 2024-06-23 - 1.9.116 - fix(dependencies)
|
||||
Update @git.zone/tsdoc to version 1.3.5
|
||||
|
||||
- Updated the @git.zone/tsdoc dependency in package.json and pnpm-lock.yaml from version 1.3.4 to 1.3.5
|
||||
- Removed the outdated changelog.md file.
|
||||
|
||||
## 2024-06-23 - 1.9.114 - fix(format)
|
||||
Fixed formatting issues across multiple TypeScript files.
|
||||
|
||||
## 2024-06-23 - 1.9.113 - fix(mod_commit)
|
||||
Remove extra new lines in changelog.
|
||||
|
||||
## 2024-06-23 - 1.9.112 - fix(core)
|
||||
Update changelog formatting and remove outdated entries.
|
||||
|
||||
## 2024-06-23 - 1.9.111 - fix(changelog)
|
||||
Remove outdated changelog entries and update formatting.
|
||||
|
||||
## 2024-06-23 - 1.9.110 - fix(dependencies)
|
||||
Update @git.zone/tsdoc to version 1.3.4.
|
||||
|
||||
## 2024-06-23 - 1.9.109 - fix(changelog)
|
||||
Remove outdated entries and adjust formatting in changelog.
|
||||
|
||||
## 2024-06-23 - 1.9.108 - fix(dependencies)
|
||||
Update @git.zone/tsdoc dependency to version 1.3.2.
|
||||
|
||||
## 2024-06-23 - 1.9.107 - fix(changelog)
|
||||
Remove placeholder entries and adjust formatting in changelog.
|
||||
|
||||
## 2024-06-23 - 1.9.106 - fix(dependencies)
|
||||
Updated @git.zone/tsdoc from version 1.3.0 to 1.3.1.
|
||||
|
||||
## 2024-06-23 - 1.9.105 - fix(dependencies)
|
||||
Updated @git.zone/tsdoc dependency from 1.2.2 to 1.3.0 in package.json and pnpm-lock.yaml.
|
||||
|
||||
## 2024-06-23 - 1.9.104 - fix(changelog)
|
||||
Remove placeholder entries and adjust formatting in changelog.
|
||||
|
||||
## 2024-06-23 - 1.9.103 - fix(changelog)
|
||||
Fix changelog to remove placeholder entries and adjust formatting.
|
||||
|
||||
## 2024-06-23 - 1.9.102 - fix(logging)
|
||||
Optimize logger instantiation and configuration.
|
||||
|
||||
## 2024-06-23 - 1.9.101 - fix(metadata)
|
||||
Ensure accurate project metadata in package.json.
|
||||
|
||||
## 2024-06-23 - 1.9.100 - fix(dependencies)
|
||||
Updated @git.zone/tsdoc dependency version to ^1.2.2 in package.json and pnpm-lock.yaml.
|
||||
|
||||
## 2024-06-23 - 1.9.99 - fix(mod_commit)
|
||||
Fix variable reassignment issue in changelog writing step.
|
||||
|
@ -10,21 +10,26 @@
|
||||
"githost": "gitlab.com",
|
||||
"gitscope": "gitzone/private",
|
||||
"gitrepo": "gitzone",
|
||||
"description": "A CLI toolbelt to streamline local development cycles by using various gitzone utilities.",
|
||||
"description": "A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.",
|
||||
"npmPackagename": "@gitzone_private/gitzone",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
"CLI",
|
||||
"development",
|
||||
"git",
|
||||
"npm",
|
||||
"local development",
|
||||
"gitzone utilities",
|
||||
"project setup",
|
||||
"version control",
|
||||
"code formatting",
|
||||
"template management",
|
||||
"npm packages",
|
||||
"TypeScript",
|
||||
"automation",
|
||||
"project setup",
|
||||
"code formatting",
|
||||
"commit management",
|
||||
"template creation",
|
||||
"logging",
|
||||
"meta project management"
|
||||
"meta project management",
|
||||
"sync",
|
||||
"Docker",
|
||||
"CI/CD"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
62
package.json
62
package.json
@ -1,8 +1,8 @@
|
||||
{
|
||||
"name": "@git.zone/cli",
|
||||
"private": false,
|
||||
"version": "1.9.111",
|
||||
"description": "A CLI toolbelt to streamline local development cycles by using various gitzone utilities.",
|
||||
"version": "1.15.3",
|
||||
"description": "A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.",
|
||||
"main": "dist_ts/index.ts",
|
||||
"typings": "dist_ts/index.d.ts",
|
||||
"type": "module",
|
||||
@ -30,45 +30,51 @@
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://code.foss.global/git.zone/cli.git"
|
||||
"url": "https://gitlab.com/gitzone/private/gitzone.git"
|
||||
},
|
||||
"keywords": [
|
||||
"CLI",
|
||||
"development",
|
||||
"git",
|
||||
"npm",
|
||||
"local development",
|
||||
"gitzone utilities",
|
||||
"project setup",
|
||||
"version control",
|
||||
"code formatting",
|
||||
"template management",
|
||||
"npm packages",
|
||||
"TypeScript",
|
||||
"automation",
|
||||
"project setup",
|
||||
"code formatting",
|
||||
"commit management",
|
||||
"template creation",
|
||||
"logging",
|
||||
"meta project management"
|
||||
"meta project management",
|
||||
"sync",
|
||||
"Docker",
|
||||
"CI/CD"
|
||||
],
|
||||
"author": "Task Venture Capital GmbH",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://code.foss.global/git.zone/cli/issues"
|
||||
"url": "https://gitlab.com/gitzone/private/gitzone/issues"
|
||||
},
|
||||
"homepage": "https://pages.foss.global/git.zone/cli",
|
||||
"homepage": "https://gitlab.com/gitzone/private/gitzone#readme",
|
||||
"devDependencies": {
|
||||
"@git.zone/tsbuild": "^2.1.80",
|
||||
"@git.zone/tsrun": "^1.2.46",
|
||||
"@git.zone/tstest": "^1.0.90",
|
||||
"@types/node": "^20.14.8"
|
||||
"@git.zone/tsbuild": "^2.3.2",
|
||||
"@git.zone/tsrun": "^1.3.3",
|
||||
"@git.zone/tstest": "^1.0.96",
|
||||
"@types/node": "^22.14.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@git.zone/tsdoc": "^1.3.4",
|
||||
"@git.zone/tsdoc": "^1.4.4",
|
||||
"@git.zone/tspublish": "^1.9.1",
|
||||
"@push.rocks/commitinfo": "^1.0.12",
|
||||
"@push.rocks/early": "^4.0.4",
|
||||
"@push.rocks/gulp-function": "^3.0.7",
|
||||
"@push.rocks/lik": "^6.0.15",
|
||||
"@push.rocks/npmextra": "^5.0.23",
|
||||
"@push.rocks/npmextra": "^5.1.2",
|
||||
"@push.rocks/projectinfo": "^5.0.2",
|
||||
"@push.rocks/smartchok": "^1.0.34",
|
||||
"@push.rocks/smartcli": "^4.0.11",
|
||||
"@push.rocks/smartdelay": "^3.0.5",
|
||||
"@push.rocks/smartfile": "^11.0.20",
|
||||
"@push.rocks/smartfile": "^11.2.0",
|
||||
"@push.rocks/smartgulp": "^3.0.4",
|
||||
"@push.rocks/smartinteract": "^2.0.15",
|
||||
"@push.rocks/smartjson": "^5.0.20",
|
||||
@ -80,14 +86,14 @@
|
||||
"@push.rocks/smartobject": "^1.0.12",
|
||||
"@push.rocks/smartopen": "^2.0.0",
|
||||
"@push.rocks/smartpath": "^5.0.18",
|
||||
"@push.rocks/smartpromise": "^4.0.3",
|
||||
"@push.rocks/smartscaf": "^4.0.15",
|
||||
"@push.rocks/smartshell": "^3.0.5",
|
||||
"@push.rocks/smartstream": "^3.0.44",
|
||||
"@push.rocks/smartpromise": "^4.2.3",
|
||||
"@push.rocks/smartscaf": "^4.0.16",
|
||||
"@push.rocks/smartshell": "^3.2.3",
|
||||
"@push.rocks/smartstream": "^3.2.5",
|
||||
"@push.rocks/smartunique": "^3.0.9",
|
||||
"@push.rocks/smartupdate": "^2.0.6",
|
||||
"@types/through2": "^2.0.41",
|
||||
"prettier": "^3.3.2",
|
||||
"prettier": "^3.5.3",
|
||||
"through2": "^4.0.2"
|
||||
},
|
||||
"files": [
|
||||
@ -104,5 +110,11 @@
|
||||
],
|
||||
"browserslist": [
|
||||
"last 1 chrome versions"
|
||||
]
|
||||
],
|
||||
"pnpm": {
|
||||
"overrides": {
|
||||
"peek-readable": "5.3.1"
|
||||
}
|
||||
},
|
||||
"packageManager": "pnpm@10.7.0+sha512.6b865ad4b62a1d9842b61d674a393903b871d9244954f652b8842c2b553c72176b278f64c463e52d40fff8aba385c235c8c9ecf5cc7de4fd78b8bb6d49633ab6"
|
||||
}
|
||||
|
6369
pnpm-lock.yaml
generated
6369
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
224
readme.md
224
readme.md
@ -1,191 +1,155 @@
|
||||
# @git.zone/cli
|
||||
|
||||
A CLI toolbelt to streamline local development cycles by using various gitzone utilities.
|
||||
A CLI toolbelt to streamline local development cycles by utilizing various gitzone utilities.
|
||||
|
||||
## Install
|
||||
|
||||
To install the `@git.zone/cli` tool, you need to have Node.js and npm installed on your machine. Once you have those set up, you can install the CLI tool globally using the following command:
|
||||
To begin using `@git.zone/cli`, ensure that Node.js and npm are installed on your system. Once they are set up, install the CLI tool globally with the following command:
|
||||
|
||||
```shell
|
||||
npm install -g @git.zone/cli
|
||||
```
|
||||
|
||||
This will add the `gitzone` or `gzone` command to your PATH, allowing you to use the tool from any directory.
|
||||
This command makes `gitzone` or `gzone` accessible from any directory on your system.
|
||||
|
||||
## Usage
|
||||
|
||||
The `gitzone` CLI is designed to streamline various aspects of the local development cycle, including project setup, maintenance, and deployment. Below, we'll go through several scenarios that demonstrate the capabilities of `gitzone`.
|
||||
The `gitzone` CLI provides a comprehensive set of utilities to optimize and manage the development lifecycle of projects, ranging from project initialization to version control, code formatting, and deployment processes. This usage guide will walk you through the available commands, their use cases, and provide detailed examples.
|
||||
|
||||
### Getting Started
|
||||
### Initializing a New Project
|
||||
|
||||
To start using `gitzone`, you need to initialize a new project or use it with an existing one. This section will guide you through the initial setup and provide examples of the core commands.
|
||||
|
||||
#### Initialize a New Project
|
||||
|
||||
`gitzone` can create several types of projects, including standard npm modules, websites using LitElement, and custom web components. To create a new project, you can use the following command:
|
||||
To bootstrap a new project aligned with modern TypeScript practices, use gitzone's template command. Choose from a range of templates tailored for different project types:
|
||||
|
||||
```shell
|
||||
gitzone template [templatename]
|
||||
```
|
||||
|
||||
Replace `[templatename]` with one of the following:
|
||||
- `npm`: A standard npm module with TypeScript support, testing, and CI/CD setup.
|
||||
- `website`: A LitElement-based website with e2e testing, bundling, and service worker support.
|
||||
- `element`: A LitElement standard setup for creating web components.
|
||||
Replace `[templatename]` with any of the following:
|
||||
- `npm`: Starts an npm module with TypeScript, complete with test and CI/CD integration.
|
||||
- `website`: Initializes a LitElement-based frontend application with features such as e2e testing and service worker setup.
|
||||
- `element`: Prepares a new standard setup for creating reusable web components with LitElement.
|
||||
|
||||
Example of starting a new npm project:
|
||||
1. Open your terminal and navigate to the directory where you want to create your project.
|
||||
2. Execute the following command:
|
||||
```shell
|
||||
gitzone template npm
|
||||
```
|
||||
3. Follow the interactive prompts to set up your project. You will be asked to provide information such as the project name, description, GitHub repository, etc.
|
||||
**Example: Starting a New npm Project**
|
||||
1. Navigate to your desired directory in the terminal.
|
||||
2. Execute:
|
||||
```shell
|
||||
gitzone template npm
|
||||
```
|
||||
3. Respond to the prompts to customize the project settings. This includes setting up essential metadata such as name and repository information.
|
||||
|
||||
#### Committing Changes
|
||||
### Committing Changes
|
||||
|
||||
To standardize commit messages and increment versions based on change types (fix, feat, breaking change):
|
||||
Standardizing commit messages and versionning with gitzone:
|
||||
|
||||
```shell
|
||||
gitzone commit
|
||||
```
|
||||
|
||||
This command will prompt you with a series of questions to help construct a standardized commit message and create a new commit.
|
||||
This command provides an interactive prompt to create a conventional commit message, which will be automatically versioned based on the significance of the changes like `fix`, `feat`, or `BREAKING CHANGE`.
|
||||
|
||||
#### Deprecating a Package
|
||||
### Handling Package Deprecation
|
||||
|
||||
To deprecate an old package in favor of a new one:
|
||||
Replace an outdated package with a new one for your team and users:
|
||||
|
||||
```shell
|
||||
gitzone deprecate
|
||||
```
|
||||
|
||||
This command will prompt you for the old and new package names and will automatically deprecate the old package on npm.
|
||||
The utility collects information about old and new package names through interactive prompts, and proceeds with deprecation notices in npm, guiding users towards the updated package.
|
||||
|
||||
#### Opening CI/CD Settings
|
||||
### CI/CD Utilities
|
||||
|
||||
Quickly open the CI/CD settings page of your project repository:
|
||||
Access your project’s CI/CD settings instantly:
|
||||
|
||||
```shell
|
||||
gitzone open ci
|
||||
```
|
||||
|
||||
### Example Commands
|
||||
This command opens the settings page of the repository’s CI/CD configuration directly from your CLI, thus swiftly transitioning from local tasks to cloud configurations.
|
||||
|
||||
#### Project Setup and Initialization
|
||||
### Maintaining Project Cleanliness
|
||||
|
||||
Let's go through how to scaffold a new web component project:
|
||||
|
||||
1. Navigate to your desired directory.
|
||||
2. Run the following command:
|
||||
```shell
|
||||
gitzone template element
|
||||
```
|
||||
3. Follow the prompts to set up your web component project.
|
||||
|
||||
#### Managing Project Lifecycle
|
||||
|
||||
Commands to manage your project's lifecycle:
|
||||
|
||||
- **Commit Changes:**
|
||||
```shell
|
||||
gitzone commit
|
||||
```
|
||||
- **Deprecate a Package:**
|
||||
```shell
|
||||
gitzone deprecate
|
||||
```
|
||||
- **Format Project Files:**
|
||||
```shell
|
||||
gitzone format
|
||||
```
|
||||
- **Regenerate Readme:**
|
||||
```shell
|
||||
gitzone readme
|
||||
```
|
||||
- **Update Local Repositories:**
|
||||
```shell
|
||||
gitzone update
|
||||
```
|
||||
|
||||
#### Advanced Scenarios
|
||||
|
||||
##### Formatting
|
||||
|
||||
To ensure consistent formatting using Prettier:
|
||||
For consistent code formatting across your project:
|
||||
|
||||
```shell
|
||||
gitzone format
|
||||
```
|
||||
|
||||
##### Building the Project
|
||||
This command applies uniform formatting styles using Prettier, ensuring your JS/TS and markdown files align with the project's style guide.
|
||||
|
||||
To build your project as defined in your `package.json`:
|
||||
### Lifecycle Management Commands
|
||||
|
||||
```shell
|
||||
npm run build
|
||||
```
|
||||
#### Clean Builds
|
||||
|
||||
##### Git and Version Control
|
||||
|
||||
Check the current project version:
|
||||
|
||||
```shell
|
||||
gitzone -v
|
||||
```
|
||||
|
||||
To synchronize local repositories with remotes:
|
||||
|
||||
```shell
|
||||
gitzone update
|
||||
```
|
||||
|
||||
##### Metadata and Configuration
|
||||
|
||||
To initialize or update metadata:
|
||||
|
||||
```shell
|
||||
gitzone meta init
|
||||
```
|
||||
|
||||
### Continuous Integration and Delivery (CI/CD)
|
||||
|
||||
#### Running Tests
|
||||
|
||||
To execute tests defined in your `package.json`:
|
||||
|
||||
```shell
|
||||
npm test
|
||||
```
|
||||
|
||||
#### Building Documentation
|
||||
|
||||
Generate documentation:
|
||||
|
||||
```shell
|
||||
npm run buildDocs
|
||||
```
|
||||
|
||||
### Troubleshooting and Debugging
|
||||
|
||||
#### Detailed Logs
|
||||
|
||||
Enable detailed logging for troubleshooting:
|
||||
|
||||
```shell
|
||||
gitzone --loglevel=debug
|
||||
```
|
||||
|
||||
#### Cleaning Up
|
||||
|
||||
To clean up project artifacts:
|
||||
Remove generated files and prepare for a fresh build:
|
||||
|
||||
```shell
|
||||
gitzone clean
|
||||
```
|
||||
|
||||
### Summary
|
||||
This utility cleans up build artifacts from your project directory so that you can run a fresh build without residual clutter affecting outcomes.
|
||||
|
||||
The `gitzone` CLI tool provides a comprehensive suite of commands that streamline project setup, lifecycle management, and deployment, which are indispensable for modern development workflows. By familiarizing yourself with the different commands, you can maximize your productivity and focus on what really matters—writing code. Whether you are starting a new project, maintaining an existing one, or deploying your work, `gitzone` is your toolbelt for efficient development cycles.
|
||||
#### Sync and meta Configuration
|
||||
|
||||
To manage metadata that guides your project configurations and module syncing:
|
||||
|
||||
```shell
|
||||
gitzone meta init
|
||||
```
|
||||
|
||||
This initialization sets the groundwork for supporting gitzone projects by helping you create a `.meta.json` file that tracks subprojects.
|
||||
|
||||
### Advanced Operations
|
||||
|
||||
#### Cloud and Docker Integrations
|
||||
|
||||
For projects integrating cloud deployment or containerization:
|
||||
|
||||
```shell
|
||||
gitzone docker prune
|
||||
```
|
||||
|
||||
This utility manages Docker resources by cleaning stale volumes, containers, and images, ensuring efficient resource use.
|
||||
|
||||
### Detailed Use Cases
|
||||
|
||||
#### **Project Setup and Template Management**
|
||||
|
||||
Whether creating an npm module or a web component, the command `gitzone template [templatename]` invokes smart scaffolding processes that automatically set up a robust project environment equipped with modern tooling like TypeScript, Prettier configurations, and testing frameworks.
|
||||
|
||||
#### **Commit Management**
|
||||
|
||||
The `gitzone commit` command assures that your commit messages complement semantic versioning practices. It proposes version bumps based on detected changes and helps maintain an accurate project change log.
|
||||
|
||||
- **Interactive Commit:** Users engage in dialogues to define commit type (`fix`, `feat`, `BREAKING CHANGE`), scope, and description, resulting in uniform and meaningful commit logs.
|
||||
- **Automatic Versioning:** After message crafting, the versioning is attended by bumps similar to npm’s `npm version` with stages such as `major`, `minor`, and `patch`.
|
||||
|
||||
#### **Formatting and Configurations**
|
||||
|
||||
A consistent format yields a professional and readable codebase:
|
||||
```shell
|
||||
gitzone format
|
||||
```
|
||||
|
||||
- **Prettier Integration:** Formats not only TypeScript and JavaScript files but also documents such as `readme.md`, maintaining consistency in both code and documentation style.
|
||||
|
||||
#### **Synced Meta Projects**
|
||||
|
||||
Effectively supervise interconnected repositories or module collections:
|
||||
- **Meta Initialization (`meta init`)**: Lay down a foundation for a meta repository that orchestrates multiple projects by overseeing them through a centralized metadata file.
|
||||
- **Subproject Operations:** Commands such as `meta update`, `meta add`, `meta remove` enable dynamic management of subprojects, ensuring they remain updated with current features and aligned to the meta repository's standards.
|
||||
|
||||
#### **CI/CD Integration**
|
||||
|
||||
Directly linking your local development processes to continuous integration settings with `gitzone open ci` provides seamless switches between code and configuration in cloud-based environments.
|
||||
|
||||
#### **Real-time Docker Management**
|
||||
|
||||
For developers employing Docker for service deployments, `gitzone docker prune` offers a quick remedy to residual services, optimizing local/docker-storage for a more streamlined experience in container management.
|
||||
|
||||
### Leveraging gitzone
|
||||
|
||||
By mastering the `gitzone` CLI commands, you gain unparalleled efficiency in managing your projects from conception to deployment. Encompassing a wide gamut of functionalities, from initial project scaffolding to synchronization of modularized repositories and beyond, `gitzone` serves as a linchpin for developers intent on optimizing their workflow. Understanding and utilizing its full potential catalyzes development cycles, granting the freedom to focus on innovation, collaboration, and delivering outstanding software products.
|
||||
|
||||
## License and Legal Information
|
||||
|
||||
|
@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@git.zone/cli',
|
||||
version: '1.9.111',
|
||||
description: 'A CLI toolbelt to streamline local development cycles by using various gitzone utilities.'
|
||||
version: '1.15.3',
|
||||
description: 'A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.'
|
||||
}
|
||||
|
@ -16,8 +16,10 @@ export interface IGitzoneConfigData {
|
||||
npmPackageName: string;
|
||||
license: string;
|
||||
projectDomain: string;
|
||||
assetbrokerUrl: string;
|
||||
legalUrl: string;
|
||||
};
|
||||
copy: {[key: string]: string}
|
||||
copy: { [key: string]: string };
|
||||
npmciOptions: {
|
||||
npmAccessLevel: 'public' | 'private';
|
||||
};
|
||||
|
@ -1,4 +1,4 @@
|
||||
import * as plugins from './plugins.js'
|
||||
import * as plugins from './plugins.js';
|
||||
import * as paths from './paths.js';
|
||||
|
||||
import { GitzoneConfig } from './classes.gitzoneconfig.js';
|
||||
|
@ -15,7 +15,7 @@ export let run = async () => {
|
||||
await smartupdateInstance.check(
|
||||
'gitzone',
|
||||
projectInfo.npm.version,
|
||||
'http://gitzone.gitlab.io/gitzone/changelog.html'
|
||||
'http://gitzone.gitlab.io/gitzone/changelog.html',
|
||||
);
|
||||
console.log('---------------------------------------------');
|
||||
gitzoneSmartcli.addVersion(projectInfo.npm.version);
|
||||
@ -48,6 +48,14 @@ export let run = async () => {
|
||||
await modDeprecate.run();
|
||||
});
|
||||
|
||||
/**
|
||||
* docker
|
||||
*/
|
||||
gitzoneSmartcli.addCommand('docker').subscribe(async (argvArg) => {
|
||||
const modDocker = await import('./mod_docker/index.js');
|
||||
await modDocker.run(argvArg);
|
||||
});
|
||||
|
||||
/**
|
||||
* Update all files that comply with the gitzone standard
|
||||
*/
|
||||
|
@ -5,6 +5,12 @@ import * as paths from '../paths.js';
|
||||
import { logger } from '../gitzone.logging.js';
|
||||
|
||||
export const run = async (argvArg: any) => {
|
||||
if (argvArg.format) {
|
||||
const formatMod = await import('../mod_format/index.js');
|
||||
await formatMod.run();
|
||||
}
|
||||
|
||||
|
||||
logger.log('info', `gathering facts...`);
|
||||
const aidoc = new plugins.tsdoc.AiDoc();
|
||||
await aidoc.start();
|
||||
@ -74,7 +80,11 @@ export const run = async (argvArg: any) => {
|
||||
changelog = changelog.replaceAll('{{nextVersion}}', (await commitInfo.getNextPlannedVersion()).versionString);
|
||||
changelog = changelog.replaceAll('{{nextVersionScope}}', `${await answerBucket.getAnswerFor('commitType')}(${await answerBucket.getAnswerFor('commitScope')})`);
|
||||
changelog = changelog.replaceAll('{{nextVersionMessage}}', nextCommitObject.recommendedNextVersionMessage);
|
||||
changelog = changelog.replaceAll('{{nextVersionDetails}}', '- ' + nextCommitObject.recommendedNextVersionDetails.join('\n- '));
|
||||
if (nextCommitObject.recommendedNextVersionDetails?.length > 0) {
|
||||
changelog = changelog.replaceAll('{{nextVersionDetails}}', '- ' + nextCommitObject.recommendedNextVersionDetails.join('\n- '));
|
||||
} else {
|
||||
changelog = changelog.replaceAll('\n{{nextVersionDetails}}', '');
|
||||
}
|
||||
|
||||
await plugins.smartfile.memory.toFs(changelog, plugins.path.join(paths.cwd, `changelog.md`));
|
||||
|
||||
|
@ -4,6 +4,15 @@ import { logger } from '../gitzone.logging.js';
|
||||
|
||||
export const run = async () => {
|
||||
const smartInteract = new plugins.smartinteract.SmartInteract([
|
||||
{
|
||||
name: `registryUrls`,
|
||||
message: `What are the comma separated registry URLs?`,
|
||||
type: `input`,
|
||||
default: `https://registry.npmjs.org`,
|
||||
validate: (stringInput) => {
|
||||
return stringInput !== '' && !process.env.CI;
|
||||
},
|
||||
},
|
||||
{
|
||||
name: `oldPackageName`,
|
||||
message: `Whats the name of the OLD package?`,
|
||||
@ -24,14 +33,17 @@ export const run = async () => {
|
||||
},
|
||||
]);
|
||||
const answerBucket = await smartInteract.runQueue();
|
||||
const registryUrls = answerBucket.getAnswerFor(`registryUrls`).split(',');
|
||||
const oldPackageName = answerBucket.getAnswerFor(`oldPackageName`);
|
||||
const newPackageName = answerBucket.getAnswerFor(`newPackageName`);
|
||||
logger.log('info', `Deprecating package ${oldPackageName} in favour of ${newPackageName}`);
|
||||
const smartshellInstance = new plugins.smartshell.Smartshell({
|
||||
executor: 'bash',
|
||||
});
|
||||
await smartshellInstance.exec(
|
||||
`npm deprecate ${oldPackageName}@* ` +
|
||||
`"${oldPackageName} has been deprecated in favour of ${newPackageName} - please upgrade asap!!!"`
|
||||
);
|
||||
for (const registryUrl of registryUrls) {
|
||||
await smartshellInstance.exec(
|
||||
`npm deprecate ${oldPackageName}@* ` +
|
||||
`"${oldPackageName} has been deprecated in favour of ${newPackageName} - please upgrade asap!!!" --registry ${registryUrl}`,
|
||||
);
|
||||
}
|
||||
};
|
||||
|
12
ts/mod_docker/index.ts
Normal file
12
ts/mod_docker/index.ts
Normal file
@ -0,0 +1,12 @@
|
||||
import * as plugins from './mod.plugins.js';
|
||||
|
||||
export const run = async (argvArg) => {
|
||||
const smartshellInstance = new plugins.smartshell.Smartshell({
|
||||
executor: 'bash',
|
||||
});
|
||||
switch (argvArg._[1]) {
|
||||
case 'prune':
|
||||
await smartshellInstance.exec(`docker system prune -a -f --volumes`);
|
||||
break;
|
||||
}
|
||||
};
|
4
ts/mod_docker/mod.plugins.ts
Normal file
4
ts/mod_docker/mod.plugins.ts
Normal file
@ -0,0 +1,4 @@
|
||||
export * from '../plugins.js';
|
||||
|
||||
import * as smartshell from '@push.rocks/smartshell';
|
||||
export { smartshell };
|
@ -3,4 +3,4 @@ import * as plugins from '../plugins.js';
|
||||
|
||||
export const run = async (projectArg: Project) => {
|
||||
const gitzoneConfig = await projectArg.gitzoneConfig;
|
||||
}
|
||||
};
|
||||
|
@ -4,20 +4,21 @@ import { Project } from '../classes.project.js';
|
||||
|
||||
import { logger } from '../gitzone.logging.js';
|
||||
|
||||
const incompatibleLicenses: string[] = [
|
||||
"AGPL",
|
||||
"GPL",
|
||||
"SSPL",
|
||||
];
|
||||
const incompatibleLicenses: string[] = ['AGPL', 'GPL', 'SSPL'];
|
||||
|
||||
export const run = async (projectArg: Project) => {
|
||||
const nodeModulesInstalled = await plugins.smartfile.fs.isDirectory(plugins.path.join(paths.cwd, 'node_modules'));
|
||||
const nodeModulesInstalled = await plugins.smartfile.fs.isDirectory(
|
||||
plugins.path.join(paths.cwd, 'node_modules'),
|
||||
);
|
||||
if (!nodeModulesInstalled) {
|
||||
logger.log('warn', 'No node_modules found. Skipping license check');
|
||||
return;
|
||||
}
|
||||
const licenseChecker = await plugins.smartlegal.createLicenseChecker();
|
||||
const licenseCheckResult = await licenseChecker.excludeLicenseWithinPath(paths.cwd, incompatibleLicenses);
|
||||
const licenseCheckResult = await licenseChecker.excludeLicenseWithinPath(
|
||||
paths.cwd,
|
||||
incompatibleLicenses,
|
||||
);
|
||||
if (licenseCheckResult.failingModules.length === 0) {
|
||||
logger.log('info', 'Success -> licenses passed!');
|
||||
} else {
|
||||
|
@ -48,7 +48,7 @@ export const run = async (projectArg: Project) => {
|
||||
plugins.smartobject.smartAdd(
|
||||
npmextraJson.gitzone,
|
||||
expectedRepoInformationItem,
|
||||
cliProvidedValue
|
||||
cliProvidedValue,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ const ensureDependency = async (
|
||||
packageJsonObjectArg: any,
|
||||
position: 'dep' | 'devDep' | 'everywhere',
|
||||
constraint: 'exclude' | 'include' | 'latest',
|
||||
dependencyArg: string
|
||||
dependencyArg: string,
|
||||
) => {};
|
||||
|
||||
export const run = async (projectArg: Project) => {
|
||||
@ -26,14 +26,13 @@ export const run = async (projectArg: Project) => {
|
||||
|
||||
// metadata
|
||||
packageJson.repository = {
|
||||
"type": "git",
|
||||
"url": `git+https://${gitzoneData.module.githost}/${gitzoneData.module.gitscope}/${gitzoneData.module.gitrepo}.git`
|
||||
type: 'git',
|
||||
url: `https://${gitzoneData.module.githost}/${gitzoneData.module.gitscope}/${gitzoneData.module.gitrepo}.git`,
|
||||
};
|
||||
packageJson.bugs = {
|
||||
"url": `https://${gitzoneData.module.githost}/${gitzoneData.module.gitscope}/${gitzoneData.module.gitrepo}/issues`
|
||||
},
|
||||
packageJson.homepage = `https://${gitzoneData.module.githost}/${gitzoneData.module.gitscope}/${gitzoneData.module.gitrepo}#readme`;
|
||||
|
||||
(packageJson.bugs = {
|
||||
url: `https://${gitzoneData.module.githost}/${gitzoneData.module.gitscope}/${gitzoneData.module.gitrepo}/issues`,
|
||||
}),
|
||||
(packageJson.homepage = `https://${gitzoneData.module.githost}/${gitzoneData.module.gitscope}/${gitzoneData.module.gitrepo}#readme`);
|
||||
|
||||
// Check for module type
|
||||
if (!packageJson.type) {
|
||||
@ -71,23 +70,6 @@ export const run = async (projectArg: Project) => {
|
||||
packageJson.scripts.buildDocs = `tsdoc`;
|
||||
}
|
||||
|
||||
// check package.json
|
||||
if (!packageJson.main) {
|
||||
logger.log('error', 'no "main" property');
|
||||
process.exit(0);
|
||||
}
|
||||
if (!packageJson.typings) {
|
||||
logger.log('error', 'no "typings" property');
|
||||
process.exit(0);
|
||||
}
|
||||
if (!packageJson.browserslist) {
|
||||
packageJson.browserslist = ['last 1 chrome versions'];
|
||||
}
|
||||
if (!packageJson.main.includes('dist_') || !packageJson.typings.includes('dist_')) {
|
||||
logger.log('error', 'check packagesJson main and typings');
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
// check for files
|
||||
packageJson.files = [
|
||||
'ts/**/*',
|
||||
@ -107,6 +89,13 @@ export const run = async (projectArg: Project) => {
|
||||
await ensureDependency(packageJson, 'devDep', 'latest', '@git.zone/tstest');
|
||||
await ensureDependency(packageJson, 'devDep', 'latest', '@git.zone/tsbuild');
|
||||
|
||||
// set overrides
|
||||
const overrides = plugins.smartfile.fs.toObjectSync(
|
||||
plugins.path.join(paths.assetsDir, 'overrides.json'),
|
||||
);
|
||||
packageJson.pnpm = packageJson.pnpm || {};
|
||||
packageJson.pnpm.overrides = overrides;
|
||||
|
||||
// exclude
|
||||
// TODO
|
||||
|
||||
|
@ -43,7 +43,7 @@ const prettierTypeScriptPipestop = plugins.through2.obj(
|
||||
fileArg.setContentsFromString(formatedFileString);
|
||||
cb(null, fileArg);
|
||||
}
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
export const run = async (projectArg: Project) => {
|
||||
|
@ -8,7 +8,10 @@ export const run = async () => {
|
||||
// Check and initialize readme.md if it doesn't exist
|
||||
const readmeExists = await plugins.smartfile.fs.fileExists(readmePath);
|
||||
if (!readmeExists) {
|
||||
await plugins.smartfile.fs.toFs('# Project Readme\n\nThis is the initial readme file.', readmePath);
|
||||
await plugins.smartfile.fs.toFs(
|
||||
'# Project Readme\n\nThis is the initial readme file.',
|
||||
readmePath,
|
||||
);
|
||||
console.log('Initialized readme.md');
|
||||
} else {
|
||||
console.log('readme.md already exists');
|
||||
@ -17,9 +20,12 @@ export const run = async () => {
|
||||
// Check and initialize readme.hints.md if it doesn't exist
|
||||
const readmeHintsExists = await plugins.smartfile.fs.fileExists(readmeHintsPath);
|
||||
if (!readmeHintsExists) {
|
||||
await plugins.smartfile.fs.toFs('# Project Readme Hints\n\nThis is the initial readme hints file.', readmeHintsPath);
|
||||
await plugins.smartfile.fs.toFs(
|
||||
'# Project Readme Hints\n\nThis is the initial readme hints file.',
|
||||
readmeHintsPath,
|
||||
);
|
||||
console.log('Initialized readme.hints.md');
|
||||
} else {
|
||||
console.log('readme.hints.md already exists');
|
||||
}
|
||||
};
|
||||
};
|
||||
|
@ -38,7 +38,7 @@ export const run = async (project: Project) => {
|
||||
case 'website':
|
||||
const ciTemplateDocker = await templateModule.getTemplate('ci_docker');
|
||||
await ciTemplateDocker.writeToDisk(paths.cwd);
|
||||
logger.log('info', 'Updated .gitlabci.yml!');
|
||||
logger.log('info', 'Updated CI/CD config files!');
|
||||
|
||||
// lets care about docker
|
||||
const dockerTemplate = await templateModule.getTemplate('dockerfile_service');
|
||||
@ -57,6 +57,12 @@ export const run = async (project: Project) => {
|
||||
// update html
|
||||
if (project.gitzoneConfig.data.projectType === 'website') {
|
||||
const websiteUpdateTemplate = await templateModule.getTemplate('website_update');
|
||||
const variables ={
|
||||
assetbrokerUrl: project.gitzoneConfig.data.module.assetbrokerUrl,
|
||||
legalUrl: project.gitzoneConfig.data.module.legalUrl,
|
||||
};
|
||||
console.log('updating website template with variables\n', JSON.stringify(variables, null, 2));
|
||||
websiteUpdateTemplate.supplyVariables(variables);
|
||||
await websiteUpdateTemplate.writeToDisk(paths.cwd);
|
||||
logger.log('info', `Updated html for website!`);
|
||||
} else if (project.gitzoneConfig.data.projectType === 'service') {
|
||||
|
26
ts/mod_format/format.tsconfig.ts
Normal file
26
ts/mod_format/format.tsconfig.ts
Normal file
@ -0,0 +1,26 @@
|
||||
import * as plugins from './mod.plugins.js';
|
||||
import * as paths from '../paths.js';
|
||||
|
||||
import { logger } from '../gitzone.logging.js';
|
||||
import { Project } from '../classes.project.js';
|
||||
|
||||
export const run = async (projectArg: Project) => {
|
||||
// lets care about tsconfig.json
|
||||
logger.log('info', 'Formatting tsconfig.json...');
|
||||
const tsconfigSmartfile = await plugins.smartfile.SmartFile.fromFilePath(
|
||||
plugins.path.join(paths.cwd, 'tsconfig.json'),
|
||||
);
|
||||
const tsconfigObject = JSON.parse(tsconfigSmartfile.contentBuffer.toString());
|
||||
tsconfigObject.compilerOptions = tsconfigObject.compilerOptions || {};
|
||||
tsconfigObject.compilerOptions.baseUrl = '.';
|
||||
tsconfigObject.compilerOptions.paths = {};
|
||||
const tsPublishMod = await import('@git.zone/tspublish');
|
||||
const tsPublishInstance = new tsPublishMod.TsPublish();
|
||||
const publishModules = await tsPublishInstance.getModuleSubDirs(paths.cwd);
|
||||
for (const publishModule of Object.keys(publishModules)) {
|
||||
const publishConfig = publishModules[publishModule];
|
||||
tsconfigObject.compilerOptions.paths[`${publishConfig.name}`] = [`./${publishModule}/index.js`];
|
||||
}
|
||||
tsconfigSmartfile.setContentsFromString(JSON.stringify(tsconfigObject, null, 2));
|
||||
await tsconfigSmartfile.write();
|
||||
};
|
@ -1,7 +1,7 @@
|
||||
import * as plugins from './mod.plugins.js';
|
||||
import { Project } from '../classes.project.js';
|
||||
|
||||
export let run = async (write: boolean = true): Promise<any> => {
|
||||
export let run = async (writeArg: boolean = true): Promise<any> => {
|
||||
const project = await Project.fromCwd();
|
||||
|
||||
// cleanup
|
||||
@ -29,6 +29,8 @@ export let run = async (write: boolean = true): Promise<any> => {
|
||||
await formatGitignore.run(project);
|
||||
|
||||
// format TypeScript
|
||||
const formatTsConfig = await import('./format.tsconfig.js');
|
||||
await formatTsConfig.run(project);
|
||||
const formatPrettier = await import('./format.prettier.js');
|
||||
await formatPrettier.run(project);
|
||||
|
||||
|
@ -10,4 +10,14 @@ import * as smartnpm from '@push.rocks/smartnpm';
|
||||
import * as smartstream from '@push.rocks/smartstream';
|
||||
import * as through2 from 'through2';
|
||||
|
||||
export { lik, smartfile, smartgulp, smartinteract, smartlegal, smartobject, smartnpm, smartstream, through2 };
|
||||
export {
|
||||
lik,
|
||||
smartfile,
|
||||
smartgulp,
|
||||
smartinteract,
|
||||
smartlegal,
|
||||
smartobject,
|
||||
smartnpm,
|
||||
smartstream,
|
||||
through2,
|
||||
};
|
||||
|
@ -73,7 +73,7 @@ export class Meta {
|
||||
// write .meta.json to disk
|
||||
plugins.smartfile.memory.toFsSync(
|
||||
JSON.stringify(this.metaRepoData, null, 2),
|
||||
this.filePaths.metaJson
|
||||
this.filePaths.metaJson,
|
||||
);
|
||||
// write .gitignore to disk
|
||||
plugins.smartfile.memory.toFsSync(await this.generateGitignore(), this.filePaths.gitIgnore);
|
||||
@ -104,12 +104,12 @@ export class Meta {
|
||||
if (
|
||||
preExistingFolderArg !== '.git' &&
|
||||
!Object.keys(projects).find((projectFolder) =>
|
||||
projectFolder.startsWith(preExistingFolderArg)
|
||||
projectFolder.startsWith(preExistingFolderArg),
|
||||
)
|
||||
) {
|
||||
const response = await plugins.smartinteraction.SmartInteract.getCliConfirmation(
|
||||
`Do you want to delete superfluous directory >>${preExistingFolderArg}<< ?`,
|
||||
true
|
||||
true,
|
||||
);
|
||||
if (response) {
|
||||
logger.log('warn', `Deleting >>${preExistingFolderArg}<<!`);
|
||||
@ -131,7 +131,7 @@ export class Meta {
|
||||
logger.log('info', `found ${missingRepos.length} missing repos`);
|
||||
for (const missingRepo of missingRepos) {
|
||||
await this.smartshellInstance.exec(
|
||||
`cd ${this.cwd} && git clone ${this.metaRepoData.projects[missingRepo]} ${missingRepo}`
|
||||
`cd ${this.cwd} && git clone ${this.metaRepoData.projects[missingRepo]} ${missingRepo}`,
|
||||
);
|
||||
}
|
||||
|
||||
@ -140,7 +140,7 @@ export class Meta {
|
||||
|
||||
logger.log('info', `persist changes with a git commit`);
|
||||
await this.smartshellInstance.exec(
|
||||
`cd ${this.cwd} && git add -A && git commit -m "updated structure"`
|
||||
`cd ${this.cwd} && git add -A && git commit -m "updated structure"`,
|
||||
);
|
||||
await this.syncToRemote();
|
||||
|
||||
@ -166,7 +166,7 @@ export class Meta {
|
||||
JSON.stringify({
|
||||
projects: {},
|
||||
}),
|
||||
this.filePaths.metaJson
|
||||
this.filePaths.metaJson,
|
||||
);
|
||||
logger.log(`success`, `created a new .meta.json in directory ${this.cwd}`);
|
||||
await plugins.smartfile.memory.toFs(
|
||||
@ -174,14 +174,14 @@ export class Meta {
|
||||
name: this.dirName,
|
||||
version: '1.0.0',
|
||||
}),
|
||||
this.filePaths.packageJson
|
||||
this.filePaths.packageJson,
|
||||
);
|
||||
logger.log(`success`, `created a new package.json in directory ${this.cwd}`);
|
||||
} else {
|
||||
logger.log(`error`, `directory ${this.cwd} already has a .metaJson file. Doing nothing.`);
|
||||
}
|
||||
await this.smartshellInstance.exec(
|
||||
`cd ${this.cwd} && git add -A && git commit -m "feat(project): init meta project for ${this.dirName}"`
|
||||
`cd ${this.cwd} && git add -A && git commit -m "feat(project): init meta project for ${this.dirName}"`,
|
||||
);
|
||||
await this.updateLocalRepos();
|
||||
}
|
||||
@ -203,7 +203,7 @@ export class Meta {
|
||||
await this.sortMetaRepoData();
|
||||
await this.writeToDisk();
|
||||
await this.smartshellInstance.exec(
|
||||
`cd ${this.cwd} && git add -A && git commit -m "feat(project): add ${projectNameArg}"`
|
||||
`cd ${this.cwd} && git add -A && git commit -m "feat(project): add ${projectNameArg}"`,
|
||||
);
|
||||
await this.updateLocalRepos();
|
||||
}
|
||||
|
@ -5,11 +5,11 @@ export let run = (argvArg) => {
|
||||
let projectInfo = new plugins.projectinfo.ProjectInfo(paths.cwd);
|
||||
if (argvArg._[1] === 'ci') {
|
||||
plugins.smartopen.openUrl(
|
||||
`https://gitlab.com/${projectInfo.git.gituser}/${projectInfo.git.gitrepo}/settings/ci_cd`
|
||||
`https://gitlab.com/${projectInfo.git.gituser}/${projectInfo.git.gitrepo}/settings/ci_cd`,
|
||||
);
|
||||
} else if (argvArg._[1] === 'pipelines') {
|
||||
plugins.smartopen.openUrl(
|
||||
`https://gitlab.com/${projectInfo.git.gituser}/${projectInfo.git.gitrepo}/pipelines`
|
||||
`https://gitlab.com/${projectInfo.git.gituser}/${projectInfo.git.gitrepo}/pipelines`,
|
||||
);
|
||||
}
|
||||
};
|
||||
|
@ -22,7 +22,7 @@ export let run = () => {
|
||||
return projects;
|
||||
})()}
|
||||
* format a project with 'gitzone format'
|
||||
`
|
||||
`,
|
||||
);
|
||||
done.resolve();
|
||||
return done.promise;
|
||||
|
@ -2,7 +2,7 @@ import * as plugins from './plugins.js';
|
||||
|
||||
export let packageDir = plugins.path.join(
|
||||
plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url),
|
||||
'../'
|
||||
'../',
|
||||
);
|
||||
export let assetsDir = plugins.path.join(packageDir, './assets');
|
||||
export let templatesDir = plugins.path.join(assetsDir, 'templates');
|
||||
|
@ -6,9 +6,11 @@
|
||||
"module": "NodeNext",
|
||||
"moduleResolution": "NodeNext",
|
||||
"esModuleInterop": true,
|
||||
"verbatimModuleSyntax": true
|
||||
"verbatimModuleSyntax": true,
|
||||
"baseUrl": ".",
|
||||
"paths": {}
|
||||
},
|
||||
"exclude": [
|
||||
"dist_*/**/*.d.ts"
|
||||
]
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user