Move anastasis CLI into separate package
This commit is contained in:
parent
72a0da7bbe
commit
5a91ec2da6
9
Makefile
9
Makefile
@ -20,6 +20,7 @@ dist:
|
|||||||
$(git-archive-all) \
|
$(git-archive-all) \
|
||||||
--include ./configure \
|
--include ./configure \
|
||||||
--include ./packages/taler-wallet-cli/configure \
|
--include ./packages/taler-wallet-cli/configure \
|
||||||
|
--include ./packages/anastasis-cli/configure \
|
||||||
--include ./packages/demobank-ui/configure \
|
--include ./packages/demobank-ui/configure \
|
||||||
--include ./packages/taler-harness/configure \
|
--include ./packages/taler-harness/configure \
|
||||||
--include ./packages/merchant-backoffice-ui/configure \
|
--include ./packages/merchant-backoffice-ui/configure \
|
||||||
@ -121,15 +122,17 @@ install:
|
|||||||
pnpm install --frozen-lockfile
|
pnpm install --frozen-lockfile
|
||||||
pnpm run compile
|
pnpm run compile
|
||||||
make -C packages/taler-wallet-cli TOPLEVEL=yes install-nodeps
|
make -C packages/taler-wallet-cli TOPLEVEL=yes install-nodeps
|
||||||
|
make -C packages/anastasis-cli TOPLEVEL=yes install-nodeps
|
||||||
make -C packages/taler-harness TOPLEVEL=yes install-nodeps
|
make -C packages/taler-harness TOPLEVEL=yes install-nodeps
|
||||||
make -C packages/demobank-ui TOPLEVEL=yes install-nodeps
|
make -C packages/demobank-ui TOPLEVEL=yes install-nodeps
|
||||||
make -C packages/merchant-backoffice-ui TOPLEVEL=yes install-nodeps
|
make -C packages/merchant-backoffice-ui TOPLEVEL=yes install-nodeps
|
||||||
make -C packages/aml-backoffice-ui TOPLEVEL=yes install-nodeps
|
make -C packages/aml-backoffice-ui TOPLEVEL=yes install-nodeps
|
||||||
|
|
||||||
.PHONY: install-tools
|
.PHONY: install-tools
|
||||||
# Install taler-wallet-cli and taler-harness
|
# Install taler-wallet-cli, anastasis-cli and taler-harness
|
||||||
install-tools:
|
install-tools:
|
||||||
pnpm install --frozen-lockfile --filter @gnu-taler/taler-wallet-cli... --filter @gnu-taler/taler-harness...
|
pnpm install --frozen-lockfile --filter @gnu-taler/taler-wallet-cli... --filder @gnu-taler/anastasis-cli... --filter @gnu-taler/taler-harness...
|
||||||
pnpm run --filter @gnu-taler/taler-wallet-cli... --filter @gnu-taler/taler-harness... compile
|
pnpm run --filter @gnu-taler/taler-wallet-cli... --filter @gnu-taler/anastasis-cli... --filter @gnu-taler/taler-harness... compile
|
||||||
make -C packages/taler-wallet-cli TOPLEVEL=yes install-nodeps
|
make -C packages/taler-wallet-cli TOPLEVEL=yes install-nodeps
|
||||||
|
make -C packages/anastasis-cli TOPLEVEL=yes install-nodeps
|
||||||
make -C packages/taler-harness TOPLEVEL=yes install-nodeps
|
make -C packages/taler-harness TOPLEVEL=yes install-nodeps
|
||||||
|
@ -27,6 +27,7 @@ copy_configure() {
|
|||||||
our_configure=build-system/taler-build-scripts/configure
|
our_configure=build-system/taler-build-scripts/configure
|
||||||
copy_configure "$our_configure" ./configure
|
copy_configure "$our_configure" ./configure
|
||||||
copy_configure "$our_configure" ./packages/taler-wallet-cli/configure
|
copy_configure "$our_configure" ./packages/taler-wallet-cli/configure
|
||||||
|
copy_configure "$our_configure" ./packages/anastasis-cli/configure
|
||||||
copy_configure "$our_configure" ./packages/demobank-ui/configure
|
copy_configure "$our_configure" ./packages/demobank-ui/configure
|
||||||
copy_configure "$our_configure" ./packages/merchant-backoffice-ui/configure
|
copy_configure "$our_configure" ./packages/merchant-backoffice-ui/configure
|
||||||
copy_configure "$our_configure" ./packages/taler-harness/configure
|
copy_configure "$our_configure" ./packages/taler-harness/configure
|
||||||
|
41
packages/anastasis-cli/Makefile
Normal file
41
packages/anastasis-cli/Makefile
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# This Makefile has been placed in the public domain.
|
||||||
|
|
||||||
|
ifeq ($(TOPLEVEL), yes)
|
||||||
|
$(info top-level build)
|
||||||
|
-include ../../.config.mk
|
||||||
|
else
|
||||||
|
$(info package-level build)
|
||||||
|
-include ../../.config.mk
|
||||||
|
-include .config.mk
|
||||||
|
endif
|
||||||
|
|
||||||
|
$(info prefix is $(prefix))
|
||||||
|
|
||||||
|
all:
|
||||||
|
@echo use 'make install' to build and install anastasis-cli
|
||||||
|
|
||||||
|
ifndef prefix
|
||||||
|
.PHONY: warn-noprefix install
|
||||||
|
warn-noprefix:
|
||||||
|
@echo "no prefix configured, did you run ./configure?"
|
||||||
|
install: warn-noprefix
|
||||||
|
else
|
||||||
|
install_target = $(prefix)/lib/anastasis-cli
|
||||||
|
.PHONY: install install-nodeps deps
|
||||||
|
install-nodeps:
|
||||||
|
./build-node.mjs
|
||||||
|
install -d $(prefix)/bin
|
||||||
|
install -d $(install_target)/bin
|
||||||
|
install -d $(install_target)/node_modules/anastasis-cli
|
||||||
|
install -d $(install_target)/node_modules/anastasis-cli/bin
|
||||||
|
install -d $(install_target)/node_modules/anastasis-cli/dist
|
||||||
|
install ./dist/anastasis-cli-bundled.cjs $(install_target)/node_modules/anastasis-cli/dist/
|
||||||
|
install ./dist/anastasis-cli-bundled.cjs.map $(install_target)/node_modules/anastasis-cli/dist/
|
||||||
|
install ./bin/anastasis-cli.mjs $(install_target)/node_modules/anastasis-cli/bin/
|
||||||
|
ln -sf $(install_target)/node_modules/anastasis-cli/bin/anastasis-cli.mjs $(prefix)/bin/anastasis-cli
|
||||||
|
deps:
|
||||||
|
pnpm install --frozen-lockfile --filter @gnu-taler/anastasis-cli...
|
||||||
|
install:
|
||||||
|
$(MAKE) deps
|
||||||
|
$(MAKE) install-nodeps
|
||||||
|
endif
|
4
packages/anastasis-cli/README.md
Normal file
4
packages/anastasis-cli/README.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# anastasis-cli
|
||||||
|
|
||||||
|
This package provides `anastasis-cli`, the command-line interface for the
|
||||||
|
Anastasis backup system.
|
20
packages/anastasis-cli/bin/anastasis-cli.mjs
Executable file
20
packages/anastasis-cli/bin/anastasis-cli.mjs
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
/*
|
||||||
|
This file is part of GNU Taler
|
||||||
|
(C) 2022 Taler Systems SA
|
||||||
|
|
||||||
|
TALER is free software; you can redistribute it and/or modify it under the
|
||||||
|
terms of the GNU General Public License as published by the Free Software
|
||||||
|
Foundation; either version 3, or (at your option) any later version.
|
||||||
|
|
||||||
|
TALER is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||||
|
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along with
|
||||||
|
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { reducerCliMain } from '../dist/anastasis-cli-bundled.cjs';
|
||||||
|
|
||||||
|
reducerCliMain();
|
70
packages/anastasis-cli/build-node.mjs
Executable file
70
packages/anastasis-cli/build-node.mjs
Executable file
@ -0,0 +1,70 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
/*
|
||||||
|
This file is part of GNU Taler
|
||||||
|
(C) 2022 Taler Systems S.A.
|
||||||
|
|
||||||
|
GNU Taler is free software; you can redistribute it and/or modify it under the
|
||||||
|
terms of the GNU General Public License as published by the Free Software
|
||||||
|
Foundation; either version 3, or (at your option) any later version.
|
||||||
|
|
||||||
|
GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||||
|
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along with
|
||||||
|
GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
|
||||||
|
*/
|
||||||
|
|
||||||
|
import esbuild from "esbuild";
|
||||||
|
import path from "path";
|
||||||
|
import fs from "fs";
|
||||||
|
|
||||||
|
const BASE = process.cwd();
|
||||||
|
|
||||||
|
let GIT_ROOT = BASE;
|
||||||
|
while (!fs.existsSync(path.join(GIT_ROOT, ".git")) && GIT_ROOT !== "/") {
|
||||||
|
GIT_ROOT = path.join(GIT_ROOT, "../");
|
||||||
|
}
|
||||||
|
if (GIT_ROOT === "/") {
|
||||||
|
console.log("not found");
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
const GIT_HASH = GIT_ROOT === "/" ? undefined : git_hash();
|
||||||
|
|
||||||
|
let _package = JSON.parse(fs.readFileSync(path.join(BASE, "package.json")));
|
||||||
|
|
||||||
|
function git_hash() {
|
||||||
|
const rev = fs
|
||||||
|
.readFileSync(path.join(GIT_ROOT, ".git", "HEAD"))
|
||||||
|
.toString()
|
||||||
|
.trim()
|
||||||
|
.split(/.*[: ]/)
|
||||||
|
.slice(-1)[0];
|
||||||
|
if (rev.indexOf("/") === -1) {
|
||||||
|
return rev;
|
||||||
|
} else {
|
||||||
|
return fs.readFileSync(path.join(GIT_ROOT, ".git", rev)).toString().trim();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const buildConfig = {
|
||||||
|
entryPoints: ["src/index.ts"],
|
||||||
|
outfile: "dist/anastasis-cli-bundled.cjs",
|
||||||
|
bundle: true,
|
||||||
|
minify: false,
|
||||||
|
target: ["es2020"],
|
||||||
|
format: "cjs",
|
||||||
|
platform: "node",
|
||||||
|
sourcemap: true,
|
||||||
|
inject: ["src/import-meta-url.js"],
|
||||||
|
define: {
|
||||||
|
__VERSION__: `"${_package.version}"`,
|
||||||
|
__GIT_HASH__: `"${GIT_HASH}"`,
|
||||||
|
["import.meta.url"]: "import_meta_url",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
esbuild.build(buildConfig).catch((e) => {
|
||||||
|
console.log(e);
|
||||||
|
process.exit(1);
|
||||||
|
});
|
44
packages/anastasis-cli/package.json
Normal file
44
packages/anastasis-cli/package.json
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
"name": "@gnu-taler/anastasis-cli",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"description": "",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.18.0"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git://git.taler.net/wallet-core.git"
|
||||||
|
},
|
||||||
|
"author": "Florian Dold",
|
||||||
|
"license": "GPL-3.0",
|
||||||
|
"bin": {
|
||||||
|
"anastasis-cli": "./bin/anastasis-cli.mjs"
|
||||||
|
},
|
||||||
|
"type": "module",
|
||||||
|
"scripts": {
|
||||||
|
"compile": "tsc --build && ./build-node.mjs",
|
||||||
|
"test": "tsc",
|
||||||
|
"clean": "rimraf lib dist tsconfig.tsbuildinfo",
|
||||||
|
"pretty": "prettier --write src"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"AUTHORS",
|
||||||
|
"README",
|
||||||
|
"COPYING",
|
||||||
|
"bin/",
|
||||||
|
"dist/node",
|
||||||
|
"src/"
|
||||||
|
],
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/node": "^18.11.17",
|
||||||
|
"prettier": "^2.8.8",
|
||||||
|
"rimraf": "^3.0.2",
|
||||||
|
"typedoc": "^0.24.8",
|
||||||
|
"typescript": "^5.1.3"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@gnu-taler/taler-util": "workspace:*",
|
||||||
|
"@gnu-taler/anastasis-core": "workspace:*",
|
||||||
|
"tslib": "^2.5.3"
|
||||||
|
}
|
||||||
|
}
|
2
packages/anastasis-cli/src/import-meta-url.js
Normal file
2
packages/anastasis-cli/src/import-meta-url.js
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
// Helper to make 'import.meta.url' available in esbuild-bundled code as well.
|
||||||
|
export const import_meta_url = require("url").pathToFileURL(__filename);
|
@ -3,7 +3,7 @@ import {
|
|||||||
getBackupStartState,
|
getBackupStartState,
|
||||||
getRecoveryStartState,
|
getRecoveryStartState,
|
||||||
reduceAction,
|
reduceAction,
|
||||||
} from "./index.js";
|
} from "@gnu-taler/anastasis-core";
|
||||||
import fs from "fs";
|
import fs from "fs";
|
||||||
|
|
||||||
export const reducerCli = clk
|
export const reducerCli = clk
|
33
packages/anastasis-cli/tsconfig.json
Normal file
33
packages/anastasis-cli/tsconfig.json
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"compileOnSave": true,
|
||||||
|
"compilerOptions": {
|
||||||
|
"composite": true,
|
||||||
|
"target": "ES2018",
|
||||||
|
"module": "ESNext",
|
||||||
|
"moduleResolution": "Node16",
|
||||||
|
"sourceMap": true,
|
||||||
|
"lib": ["es6"],
|
||||||
|
"noImplicitReturns": true,
|
||||||
|
"noFallthroughCasesInSwitch": true,
|
||||||
|
"strict": true,
|
||||||
|
"strictPropertyInitialization": false,
|
||||||
|
"outDir": "lib",
|
||||||
|
"noImplicitAny": true,
|
||||||
|
"noImplicitThis": true,
|
||||||
|
"incremental": true,
|
||||||
|
"esModuleInterop": true,
|
||||||
|
"importHelpers": true,
|
||||||
|
"rootDir": "src",
|
||||||
|
"baseUrl": "./src",
|
||||||
|
"typeRoots": ["./node_modules/@types"]
|
||||||
|
},
|
||||||
|
"include": ["src/**/*"],
|
||||||
|
"references": [
|
||||||
|
{
|
||||||
|
"path": "../anastasis-core/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "../taler-util/"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -1,7 +0,0 @@
|
|||||||
import { reducerCliMain } from "./cli.js";
|
|
||||||
|
|
||||||
async function r() {
|
|
||||||
reducerCliMain();
|
|
||||||
}
|
|
||||||
|
|
||||||
r();
|
|
@ -1,2 +0,0 @@
|
|||||||
export * from "./index.js";
|
|
||||||
export { reducerCliMain } from "./cli.js";
|
|
@ -52,7 +52,7 @@
|
|||||||
},
|
},
|
||||||
"#argon2-impl": {
|
"#argon2-impl": {
|
||||||
"node": "./lib/argon2-impl.node.js",
|
"node": "./lib/argon2-impl.node.js",
|
||||||
"default": "/lib/argon2-impl.missing.js"
|
"default": "./lib/argon2-impl.missing.js"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
@ -112,6 +112,34 @@ importers:
|
|||||||
specifier: 5.1.3
|
specifier: 5.1.3
|
||||||
version: 5.1.3
|
version: 5.1.3
|
||||||
|
|
||||||
|
packages/anastasis-cli:
|
||||||
|
dependencies:
|
||||||
|
'@gnu-taler/anastasis-core':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../anastasis-core
|
||||||
|
'@gnu-taler/taler-util':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../taler-util
|
||||||
|
tslib:
|
||||||
|
specifier: ^2.5.3
|
||||||
|
version: 2.5.3
|
||||||
|
devDependencies:
|
||||||
|
'@types/node':
|
||||||
|
specifier: ^18.11.17
|
||||||
|
version: 18.11.17
|
||||||
|
prettier:
|
||||||
|
specifier: ^2.8.8
|
||||||
|
version: 2.8.8
|
||||||
|
rimraf:
|
||||||
|
specifier: ^3.0.2
|
||||||
|
version: 3.0.2
|
||||||
|
typedoc:
|
||||||
|
specifier: ^0.24.8
|
||||||
|
version: 0.24.8(typescript@5.1.3)
|
||||||
|
typescript:
|
||||||
|
specifier: ^5.1.3
|
||||||
|
version: 5.1.3
|
||||||
|
|
||||||
packages/anastasis-core:
|
packages/anastasis-core:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@gnu-taler/taler-util':
|
'@gnu-taler/taler-util':
|
||||||
@ -6295,7 +6323,7 @@ packages:
|
|||||||
engines: {node: '>=14.15.0'}
|
engines: {node: '>=14.15.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
js-yaml: 3.14.1
|
js-yaml: 3.14.1
|
||||||
tslib: 2.4.1
|
tslib: 2.5.3
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@zkochan/js-yaml@0.0.6:
|
/@zkochan/js-yaml@0.0.6:
|
||||||
@ -12308,6 +12336,7 @@ packages:
|
|||||||
/marked@4.3.0:
|
/marked@4.3.0:
|
||||||
resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==}
|
resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==}
|
||||||
engines: {node: '>= 12'}
|
engines: {node: '>= 12'}
|
||||||
|
hasBin: true
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/matcher@5.0.0:
|
/matcher@5.0.0:
|
||||||
@ -15089,6 +15118,7 @@ packages:
|
|||||||
|
|
||||||
/rimraf@2.7.1:
|
/rimraf@2.7.1:
|
||||||
resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
|
resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
|
||||||
|
hasBin: true
|
||||||
dependencies:
|
dependencies:
|
||||||
glob: 7.2.3
|
glob: 7.2.3
|
||||||
dev: true
|
dev: true
|
||||||
@ -16447,10 +16477,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==}
|
resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/tslib@2.4.1:
|
|
||||||
resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/tslib@2.5.3:
|
/tslib@2.5.3:
|
||||||
resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==}
|
resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==}
|
||||||
|
|
||||||
@ -16552,6 +16578,7 @@ packages:
|
|||||||
/typescript@4.6.4:
|
/typescript@4.6.4:
|
||||||
resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==}
|
resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==}
|
||||||
engines: {node: '>=4.2.0'}
|
engines: {node: '>=4.2.0'}
|
||||||
|
hasBin: true
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/typescript@5.1.3:
|
/typescript@5.1.3:
|
||||||
|
@ -21,6 +21,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "packages/taler-wallet-webextension//"
|
"path": "packages/taler-wallet-webextension//"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "packages/anastasis-core/"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"files": []
|
"files": []
|
||||||
|
Loading…
Reference in New Issue
Block a user