Try cookiecutter

This commit is contained in:
Thomas Lovén 2023-12-26 13:22:45 +01:00
parent 37a641887f
commit bdd99e9374
22 changed files with 54 additions and 48 deletions

2
.gitattributes vendored
View File

@ -1,2 +0,0 @@
<NAME>.js binary
package-lock.json.binary

1
.gitignore vendored
View File

@ -1 +0,0 @@
node_modules/

6
cookiecutter.json Normal file
View File

@ -0,0 +1,6 @@
{
"project_name": "Lovelace Custom Card",
"project_slug": "{{ cookiecutter.project_name.lower().replace(' ', '-') ",
"project_file": "{{ cookiecutter.project_slug.replace('lovelace-', '') ",
"author": "Thomas Lovén"
}

View File

@ -1,4 +0,0 @@
{
"name": "<NAME>",
"render_readme": true
}

View File

@ -1,28 +0,0 @@
{
"name": "<NAME>",
"private": true,
"version": "1.0.0",
"description": "",
"scripts": {
"build": "rollup -c",
"watch": "rollup -c --watch",
"update-card-tools": "npm uninstall card-tools && npm install thomasloven/lovelace-card-tools"
},
"author": "Thomas Lovén",
"license": "MIT",
"devDependencies": {
"@babel/core": "^7.13.1",
"@rollup/plugin-babel": "^5.3.0",
"@rollup/plugin-json": "^4.1.0",
"@rollup/plugin-node-resolve": "^11.2.0",
"rollup": "^2.39.0",
"rollup-plugin-terser": "^7.0.2",
"rollup-plugin-typescript2": "^0.30.0",
"typescript": "^4.1.5"
},
"dependencies": {
"card-tools": "github:thomasloven/lovelace-card-tools",
"lit": "^2.0.0-rc.2",
"tslib": "^2.1.0"
}
}

View File

@ -1,4 +0,0 @@
HASS_USERNAME=dev
HASS_PASSWORD=dev
LOVELACE_LOCAL_FILES=<NAME>.js
LOVELACE_PLUGINS=thomasloven/lovelace-card-mod

View File

@ -1,5 +1,5 @@
{ {
"name": "<NAME> Dev", "name": "{{ cookiecutter.project_slug }} Dev",
"image": "thomasloven/hass-custom-devcontainer", "image": "thomasloven/hass-custom-devcontainer",
"postCreateCommand": "sudo -E container setup-dev && npm add", "postCreateCommand": "sudo -E container setup-dev && npm add",
"containerEnv": { "containerEnv": {
@ -9,7 +9,8 @@
"mounts": [ "mounts": [
"source=${localWorkspaceFolder},target=/config/www/workspace,type=bind", "source=${localWorkspaceFolder},target=/config/www/workspace,type=bind",
"source=${localWorkspaceFolder}/test,target=/config/test,type=bind", "source=${localWorkspaceFolder}/test,target=/config/test,type=bind",
"source=${localWorkspaceFolder}/test/configuration.yaml,target=/config/configuration.yaml,type=bind" "source=${localWorkspaceFolder}/test/configuration.yaml,target=/config/configuration.yaml,type=bind",
"source=${localWorkspaceFolder}/custom_components,target=/config/custom_components,type=bind"
], ],
"runArgs": ["--env-file", "${localWorkspaceFolder}/test/.env"], "runArgs": ["--env-file", "${localWorkspaceFolder}/test/.env"],
"extensions": [ "extensions": [

View File

@ -0,0 +1,2 @@
{{ cookiecutter.project_file }}.js binary
package-lock.json.binary

View File

@ -0,0 +1,2 @@
node_modules/
custom_components/

View File

@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2021 Thomas Lovén Copyright (c) 2023 Thomas Lovén
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@ -1,4 +1,4 @@
# <NAME> # {{ cookiecutter.project_name }}
[![hacs_badge](https://img.shields.io/badge/HACS-Default-orange.svg)](https://github.com/custom-components/hacs) [![hacs_badge](https://img.shields.io/badge/HACS-Default-orange.svg)](https://github.com/custom-components/hacs)

View File

@ -0,0 +1,4 @@
{
"name": "{{ cookiecutter.project_name }}",
"render_readme": true
}

View File

@ -0,0 +1,27 @@
{
"name": "{{ cookiecutter.project_name }}",
"private": true,
"version": "0.1.0",
"description": "",
"scripts": {
"build": "rollup -c",
"watch": "rollup -c --watch"
},
"author": "{{ cookiecutter.author }}",
"license": "MIT",
"devDependencies": {
"@babel/core": "^7.23.6",
"@babel/preset-env": "^7.23.6",
"@rollup/plugin-babel": "^6.0.4",
"@rollup/plugin-json": "^6.1.0",
"@rollup/plugin-node-resolve": "^15.2.3",
"rollup": "^2.79.1",
"rollup-plugin-terser": "^7.0.2",
"rollup-plugin-typescript2": "^0.36.0",
"typescript": "^5.3.3"
},
"dependencies": {
"lit": "^3.1.0",
"tslib": "^2.6.2"
}
}

View File

@ -2,23 +2,21 @@ import nodeResolve from "@rollup/plugin-node-resolve";
import json from "@rollup/plugin-json"; import json from "@rollup/plugin-json";
import typescript from "rollup-plugin-typescript2"; import typescript from "rollup-plugin-typescript2";
import { terser } from "rollup-plugin-terser"; import { terser } from "rollup-plugin-terser";
import babel from "@rollup/plugin-babel"; import { getBabelOutputPlugin } from "@rollup/plugin-babel";
const dev = process.env.ROLLUP_WATCH; const dev = process.env.ROLLUP_WATCH;
export default { export default {
input: "src/main.ts", input: "src/main.ts",
output: { output: {
file: "<NAME>.js", file: "{{ cookiecutter.project_file }}.js",
format: "es", format: "es",
}, },
plugins: [ plugins: [
nodeResolve(), nodeResolve(),
json(), json(),
typescript(), typescript(),
babel({ getBabelOutputPlugin({ presets: ["@babel/preset-env"] }),
exclude: "node_modules/**",
}),
!dev && terser({ format: { comments: false } }), !dev && terser({ format: { comments: false } }),
], ],
}; };

View File

@ -0,0 +1,4 @@
HASS_USERNAME=dev
HASS_PASSWORD=dev
LOVELACE_LOCAL_FILES={{ cookiecutter.project_file }}.js
LOVELACE_PLUGINS="thomasloven/lovelace-card-mod"

View File

@ -12,5 +12,6 @@ services:
- ./configuration.yaml:/config/configuration.yaml:ro - ./configuration.yaml:/config/configuration.yaml:ro
- .:/config/test:ro - .:/config/test:ro
- ..:/config/www/workspace - ..:/config/www/workspace
- ../custom_components,target=/config/custom_components
ports: ports:
- 8125:8123 - 8125:8123