refactor: move SIP generator to src, use yarn

This commit is contained in:
winston 2023-04-30 20:48:21 +02:00
parent 26fe0a4789
commit 41832efd7a
No known key found for this signature in database
GPG key ID: 3786770EDBC2B481
8 changed files with 2898 additions and 4158 deletions

View file

@ -1,11 +0,0 @@
LOG_INFO=$(shell date +"%H:%M:%S") \e[0;34mINFO\e[0m
LOG_ERROR=$(shell date +"%H:%M:%S") \e[1;31mERROR\e[0m
LOG_WARNING=$(shell date +"%H:%M:%S") \e[0;33mWARNING\e[0m
LOG_SUCCESS=$(shell date +"%H:%M:%S") \e[0;32mSUCCESS\e[0m
.DEFAULT_GOAL := publish
publish:
@echo -e "$(LOG_INFO) Publishing to NPM..."
@npm publish --access public

View file

@ -1,71 +0,0 @@
import {variants,labels} from "./index.js"
import * as fs from 'fs';
const argv = process.argv.slice(2)
let theme = ""
let format = argv[0]
let out_file = argv[1]
function append(str) {
theme = theme + str
}
function write(msg) {
process.stdout.write(msg)
}
function capitalize_first_letter(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
function write_result(content=theme) {
if (out_file != undefined) {
try {
fs.writeFileSync(out_file, content);
} catch (err) {
console.error(err);
}
return
}
console.log(content)
}
switch (format) {
case 'css':
append(":root {\n")
for (let label in labels) {
for (let palette in variants) {
append("\t--ctp-" + palette + "-" + label + ": " + variants[palette][label]["hex"] + ";\n")
append("\t--ctp-" + palette + "-" + label + "-rgb" + ": " + variants[palette][label]["rgb"] + ";\n")
append("\t--ctp-" + palette + "-" + label + "-hsl" + ": " + variants[palette][label]["hsl"] + ";\n")
append("\t--ctp-" + palette + "-" + label + "-raw" + ": " + variants[palette][label]["raw"] + ";\n")
}
}
append("}")
write_result()
break
case 'json':
append(JSON.stringify(variants))
write_result()
break
case 'markdown':
for (let palette in variants) {
append("| | Labels | Hex | RGB | HSL |\n")
append("| ----------------------------------------------------------------------- | ---------- | --------- | --------------- | --------------- |\n")
for (let label in labels) {
append(`| <img src="assets/palette/circles/.png" height="23" width="23"/> |`)
append(`${capitalize_first_letter(label)}` + "| ")
append(`\`${labels[label][palette]["hex"]} \`` + "| ")
append(`\`${labels[label][palette]["rgb"]} \`` + "| ")
append(`\`${labels[label][palette]["hsl"]} \`` + "| ")
append("\n")
}
append("\n")
}
write_result()
break
default:
console.log('Wrong parameter')
break
}

4075
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -63,6 +63,9 @@
"devDependencies": {
"ava": "^4.2.0",
"esbuild": "^0.14.42",
"standard-version": "^9.5.0"
"standard-version": "^9.5.0",
"ts-node": "^10.9.1",
"tsup": "^6.7.0",
"typescript": "^5.0.4"
}
}

View file

52
src/scripts/build_sip.mjs Normal file
View file

@ -0,0 +1,52 @@
import fs from "fs/promises";
import crypto from "crypto";
import { variants } from "@catppuccin/palette";
import url from "url";
import path from "path";
const __dirname = url.fileURLToPath(new URL(".", import.meta.url));
const dateString = new Date()
.toISOString()
.replace(/T/, " ")
.replace(/\..+/, "");
Object.entries(variants).map(([name, palette]) => {
name = `Catppuccin ${name.charAt(0).toUpperCase() + name.slice(1)}`;
const data = {
cloud: true,
updatedAt: dateString,
sip: {
version: "2.6",
build: "260",
},
id: crypto.randomUUID().toUpperCase(),
readOnly: false,
createdAt: dateString,
dock: false,
name: name,
index: 1,
originalName: name,
like: false,
colors: Object.entries(palette).map(([key, value]) => {
const hex = palette[key].hex;
const r = parseInt(hex.substring(1, 3), 16) / 255;
const g = parseInt(hex.substring(3, 5), 16) / 255;
const b = parseInt(hex.substring(5, 7), 16) / 255;
return {
alpha: 1,
red: r,
green: g,
blue: b,
name: key,
createdAt: dateString,
id: crypto.randomUUID().toUpperCase(),
};
}),
lock: true,
};
const outFile = path.resolve(__dirname, `../../sip/${name}.palette`);
fs.writeFile(outFile, JSON.stringify(data, null, 2));
});

2842
yarn.lock Normal file

File diff suppressed because it is too large Load diff