Rewrite scripts in Deno and move to $BAUKE_DIR.
This commit is contained in:
parent
d6f25a266d
commit
a081f0b4e3
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"deno.enable": true,
|
||||||
|
"[typescript]": {
|
||||||
|
"editor.defaultFormatter": "denoland.vscode-deno"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
|
codium_extensions_file="$BAUKE_DIR/data/codium-extensions.txt"
|
||||||
|
|
||||||
|
deno run \
|
||||||
|
--allow-read="$codium_extensions_file" \
|
||||||
|
--allow-run="codium" \
|
||||||
|
--allow-write="$codium_extensions_file" \
|
||||||
|
"$BAUKE_DIR/scripts/codium-extensions.ts" \
|
||||||
|
"$@"
|
|
@ -0,0 +1,8 @@
|
||||||
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
|
deno run \
|
||||||
|
--allow-run="convert,gegl,mat2" \
|
||||||
|
--allow-read \
|
||||||
|
--allow-write \
|
||||||
|
"$BAUKE_DIR/scripts/project-avatar.ts" \
|
||||||
|
"$@"
|
|
@ -0,0 +1,6 @@
|
||||||
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
|
deno run \
|
||||||
|
--allow-run="git" \
|
||||||
|
"$BAUKE_DIR/scripts/simple-git-push.ts" \
|
||||||
|
"$@"
|
|
@ -0,0 +1,6 @@
|
||||||
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
|
deno run \
|
||||||
|
--allow-net="127.0.0.1:7813,127.0.0.1:7814" \
|
||||||
|
"$BAUKE_DIR/scripts/tauon-controls.ts" \
|
||||||
|
"$@"
|
|
@ -1,4 +1,5 @@
|
||||||
brunnerh.insert-unicode
|
brunnerh.insert-unicode
|
||||||
|
denoland.vscode-deno
|
||||||
Holllo.love
|
Holllo.love
|
||||||
jock.svg
|
jock.svg
|
||||||
ritwickdey.LiveServer
|
ritwickdey.LiveServer
|
|
@ -0,0 +1,65 @@
|
||||||
|
import { Command } from "https://deno.land/x/cliffy@v0.25.5/command/mod.ts";
|
||||||
|
|
||||||
|
import { runAndReturnStdout } from "./utilities.ts";
|
||||||
|
|
||||||
|
async function main(): Promise<void> {
|
||||||
|
const { options } = await new Command()
|
||||||
|
.name("codium-extensions")
|
||||||
|
.description("Small managing utility for VS Codium extensions!")
|
||||||
|
.option(
|
||||||
|
"-f, --file <file:file>",
|
||||||
|
"The file to use for storing data.",
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
new URL("../data/codium-extensions.txt", import.meta.url).pathname,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
.option("--install", "Install saved extensions.")
|
||||||
|
.option("--list", "List installed extensions.")
|
||||||
|
.option("--list-saved", "List saved extensions.")
|
||||||
|
.option("--save", "Save installed extensions.")
|
||||||
|
.parse(Deno.args);
|
||||||
|
|
||||||
|
if (options.install) {
|
||||||
|
const extensions = await getSavedExtensions(options.file);
|
||||||
|
const process = Deno.run({
|
||||||
|
cmd: [
|
||||||
|
"codium",
|
||||||
|
...extensions.flatMap((id) => ["--install-extension", id]),
|
||||||
|
],
|
||||||
|
});
|
||||||
|
await process.status();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (options.list) {
|
||||||
|
const extensions = await getInstalledExtensions();
|
||||||
|
console.log(extensions.join("\n"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (options.listSaved) {
|
||||||
|
const extensions = await getSavedExtensions(options.file);
|
||||||
|
console.log(extensions.join("\n"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (options.save) {
|
||||||
|
const extensions = await getInstalledExtensions();
|
||||||
|
await Deno.writeTextFile(options.file, extensions.join("\n") + "\n");
|
||||||
|
console.log(`Wrote ${extensions.length} extensions to ${options.file}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getInstalledExtensions(): Promise<string[]> {
|
||||||
|
const extensions = await runAndReturnStdout({
|
||||||
|
cmd: ["codium", "--list-extensions"],
|
||||||
|
});
|
||||||
|
return extensions.trim().split("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getSavedExtensions(file: string): Promise<string[]> {
|
||||||
|
const extensions = await Deno.readTextFile(file);
|
||||||
|
return extensions.trim().split("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (import.meta.main) {
|
||||||
|
void main();
|
||||||
|
}
|
|
@ -0,0 +1,107 @@
|
||||||
|
import { Command } from "https://deno.land/x/cliffy@v0.25.5/command/mod.ts";
|
||||||
|
import { existsSync } from "https://deno.land/std@0.167.0/node/fs.ts";
|
||||||
|
|
||||||
|
async function main(): Promise<void> {
|
||||||
|
const { args, options } = await new Command()
|
||||||
|
.name("project-avatar")
|
||||||
|
.description("Project Avatar Generator")
|
||||||
|
.arguments("<file:file> <text:string>")
|
||||||
|
.option("--width <width:number>", "The width of the image.", {
|
||||||
|
default: 256,
|
||||||
|
})
|
||||||
|
.option("--height <height:number>", "The height of the image.", {
|
||||||
|
default: 256,
|
||||||
|
})
|
||||||
|
.option("--font-size <font-size:number>", "Font size for the text.", {
|
||||||
|
default: 150,
|
||||||
|
})
|
||||||
|
.option("--overwrite", "Overwrite an existing image.")
|
||||||
|
.option("--clean", "Use MAT2 to clean the image.")
|
||||||
|
.parse(Deno.args);
|
||||||
|
|
||||||
|
const [file, text] = args;
|
||||||
|
|
||||||
|
if (existsSync(file)) {
|
||||||
|
if (options.overwrite) {
|
||||||
|
await Deno.remove(file);
|
||||||
|
} else {
|
||||||
|
console.log("File exists, use --overwrite to overwrite.");
|
||||||
|
Deno.exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
await Deno.run({
|
||||||
|
cmd: [
|
||||||
|
"gegl",
|
||||||
|
"-o",
|
||||||
|
file,
|
||||||
|
"--",
|
||||||
|
...geglGraph({
|
||||||
|
fontSize: options.fontSize,
|
||||||
|
height: options.height,
|
||||||
|
text,
|
||||||
|
width: options.width,
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
}).status();
|
||||||
|
|
||||||
|
if (!existsSync(file)) {
|
||||||
|
console.log("Something went wrong with GEGL.");
|
||||||
|
Deno.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
await Deno.run({
|
||||||
|
cmd: [
|
||||||
|
"convert",
|
||||||
|
file,
|
||||||
|
"-background",
|
||||||
|
"transparent",
|
||||||
|
"-gravity",
|
||||||
|
"center",
|
||||||
|
"-extent",
|
||||||
|
`${options.width}x${options.height}`,
|
||||||
|
file,
|
||||||
|
],
|
||||||
|
}).status();
|
||||||
|
|
||||||
|
if (options.clean) {
|
||||||
|
await Deno.run({ cmd: ["mat2", "--inplace", file] }).status();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type GraphOptions = {
|
||||||
|
fontSize: number;
|
||||||
|
height: number;
|
||||||
|
text: string;
|
||||||
|
width: number;
|
||||||
|
};
|
||||||
|
|
||||||
|
function geglGraph({ fontSize, height, text, width }: GraphOptions): string[] {
|
||||||
|
const graph = `
|
||||||
|
gegl:text
|
||||||
|
string=${text}
|
||||||
|
width=${width}
|
||||||
|
height=${height}
|
||||||
|
color=white
|
||||||
|
font=Inter Heavy
|
||||||
|
size=${fontSize}
|
||||||
|
alignment=1
|
||||||
|
vertical-alignment=1
|
||||||
|
gegl:dropshadow
|
||||||
|
x=0
|
||||||
|
y=0
|
||||||
|
color=black
|
||||||
|
opacity=1
|
||||||
|
grow-radius=4
|
||||||
|
radius=0
|
||||||
|
gegl:long-shadow
|
||||||
|
angle=90
|
||||||
|
color=black
|
||||||
|
length=20`;
|
||||||
|
|
||||||
|
return graph.replace(/\s\s+/g, "\n").trim().split("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (import.meta.main) {
|
||||||
|
void main();
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
import { Command } from "https://deno.land/x/cliffy@v0.25.5/command/mod.ts";
|
||||||
|
|
||||||
|
import { runAndReturnStdout } from "./utilities.ts";
|
||||||
|
|
||||||
|
async function main(): Promise<void> {
|
||||||
|
const { args } = await new Command()
|
||||||
|
.name("simple-git-push")
|
||||||
|
.description("Git push with some extra semantics.")
|
||||||
|
.arguments("[...args:string]")
|
||||||
|
.parse(Deno.args);
|
||||||
|
|
||||||
|
const availableRemotes = await gitRemote();
|
||||||
|
|
||||||
|
if (availableRemotes.length === 0) {
|
||||||
|
console.log("No remotes found");
|
||||||
|
Deno.exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
const remotesToPush = ["origin", "github"];
|
||||||
|
for (const remote of availableRemotes) {
|
||||||
|
if (remotesToPush.includes(remote)) {
|
||||||
|
await gitPush(remote, args);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function gitPush(remote: string, args: string[]): Promise<void> {
|
||||||
|
await Deno.run({
|
||||||
|
cmd: [
|
||||||
|
"git",
|
||||||
|
"push",
|
||||||
|
"--follow-tags",
|
||||||
|
remote,
|
||||||
|
...args,
|
||||||
|
],
|
||||||
|
}).status();
|
||||||
|
}
|
||||||
|
|
||||||
|
async function gitRemote(): Promise<string[]> {
|
||||||
|
const output = await runAndReturnStdout({ cmd: ["git", "remote"] });
|
||||||
|
return output.trim().split("\n").filter((remote) => remote.length > 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (import.meta.main) {
|
||||||
|
void main();
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
import { Command } from "https://deno.land/x/cliffy@v0.25.5/command/mod.ts";
|
||||||
|
|
||||||
|
const hiddenApi = "http://127.0.0.1:7813";
|
||||||
|
const remoteApi = "http://127.0.0.1:7814/api1";
|
||||||
|
|
||||||
|
async function main(): Promise<void> {
|
||||||
|
const { options } = await new Command()
|
||||||
|
.name("tauon-controls")
|
||||||
|
.description("Small remote control CLI for Tauon Music Box!")
|
||||||
|
.option("--next-song", "Play the next song.")
|
||||||
|
.option("--play-pause", "Toggle play or pause.")
|
||||||
|
.option("--previous-song", "Play the previous song.")
|
||||||
|
.option(
|
||||||
|
"--volume <volume:number>",
|
||||||
|
"Change the volume by a relative amount",
|
||||||
|
)
|
||||||
|
.parse(Deno.args);
|
||||||
|
|
||||||
|
if (options.nextSong) {
|
||||||
|
await fetch(`${remoteApi}/next`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (options.playPause) {
|
||||||
|
await fetch(`${hiddenApi}/playpause/`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (options.previousSong) {
|
||||||
|
await fetch(`${remoteApi}/back`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (options.volume !== undefined) {
|
||||||
|
await fetch(`${remoteApi}/setvolumerel/${options.volume}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (import.meta.main) {
|
||||||
|
void main();
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
import { TextDecoder } from "https://deno.land/std@0.167.0/node/util.ts";
|
||||||
|
|
||||||
|
export async function runAndReturnStdout(
|
||||||
|
options: Deno.RunOptions,
|
||||||
|
): Promise<string> {
|
||||||
|
const process = Deno.run({ stdout: "piped", ...options });
|
||||||
|
return new TextDecoder().decode(await process.output());
|
||||||
|
}
|
|
@ -1,62 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import pathlib
|
|
||||||
import subprocess
|
|
||||||
import typing
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
parser = argparse.ArgumentParser(description="Small Tauon remote control CLI")
|
|
||||||
parser.add_argument(
|
|
||||||
"action",
|
|
||||||
choices=["install", "list", "list-saved", "save"],
|
|
||||||
help="Which action should be performed.",
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
"-f",
|
|
||||||
"--file",
|
|
||||||
help="Use a different file than $HOME/.config/codium-extensions.txt.",
|
|
||||||
default=pathlib.Path.home().joinpath(".config/codium-extensions.txt"),
|
|
||||||
)
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
if args.action == "install":
|
|
||||||
print("Installing saved extensions")
|
|
||||||
for extension in get_saved_extensions(args.file):
|
|
||||||
subprocess.run(["codium", "--install-extension", extension])
|
|
||||||
elif args.action == "list":
|
|
||||||
print("Listing installed extensions")
|
|
||||||
print("\n".join(get_installed_extensions()))
|
|
||||||
elif args.action == "list-saved":
|
|
||||||
with open(args.file, "r") as file:
|
|
||||||
print("Listing saved extensions")
|
|
||||||
print(file.read())
|
|
||||||
elif args.action == "save":
|
|
||||||
with open(args.file, "w") as file:
|
|
||||||
extensions = get_installed_extensions()
|
|
||||||
file.writelines("\n".join(extensions))
|
|
||||||
file.write("\n")
|
|
||||||
print(f"Wrote {len(extensions)} extensions to {args.file}")
|
|
||||||
|
|
||||||
|
|
||||||
def get_installed_extensions() -> typing.List[str]:
|
|
||||||
extensions = subprocess.run(
|
|
||||||
[
|
|
||||||
"codium",
|
|
||||||
"--list-extensions",
|
|
||||||
],
|
|
||||||
capture_output=True,
|
|
||||||
check=True,
|
|
||||||
encoding="utf8",
|
|
||||||
)
|
|
||||||
return extensions.stdout.splitlines()
|
|
||||||
|
|
||||||
|
|
||||||
def get_saved_extensions(path: str) -> typing.List[str]:
|
|
||||||
with open(path, "r") as file:
|
|
||||||
return file.read().splitlines()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
|
@ -1,132 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
import typing
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
parser = create_parser()
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
if os.path.isfile(args.filename):
|
|
||||||
if args.overwrite:
|
|
||||||
os.remove(args.filename)
|
|
||||||
else:
|
|
||||||
print("Target file already exists, use --overwrite to overwrite.")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
subprocess.run(
|
|
||||||
[
|
|
||||||
"gegl",
|
|
||||||
"-o",
|
|
||||||
args.filename,
|
|
||||||
"--",
|
|
||||||
*gegl_graph(args.height, args.width, args.text, args.font_size),
|
|
||||||
],
|
|
||||||
check=True,
|
|
||||||
)
|
|
||||||
|
|
||||||
if not os.path.isfile(args.filename):
|
|
||||||
print("Something went wrong with GEGL")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
subprocess.run(
|
|
||||||
[
|
|
||||||
"convert",
|
|
||||||
args.filename,
|
|
||||||
"-background",
|
|
||||||
"transparent",
|
|
||||||
"-gravity",
|
|
||||||
"center",
|
|
||||||
"-extent",
|
|
||||||
f"{args.width}x{args.height}",
|
|
||||||
args.filename,
|
|
||||||
],
|
|
||||||
check=True,
|
|
||||||
)
|
|
||||||
|
|
||||||
if args.clean:
|
|
||||||
subprocess.run(
|
|
||||||
[
|
|
||||||
"mat2",
|
|
||||||
"--inplace",
|
|
||||||
args.filename,
|
|
||||||
],
|
|
||||||
check=True,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def create_parser() -> argparse.ArgumentParser:
|
|
||||||
parser = argparse.ArgumentParser(description="Project Avatar Generator")
|
|
||||||
parser.add_argument(
|
|
||||||
"filename",
|
|
||||||
help="The image filename to write to.",
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
"text",
|
|
||||||
help="The text for the project avatar.",
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
"--width",
|
|
||||||
help="The width of the image.",
|
|
||||||
type=int,
|
|
||||||
default=256,
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
"--height",
|
|
||||||
help="The height of the image.",
|
|
||||||
type=int,
|
|
||||||
default=256,
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
"--overwrite",
|
|
||||||
help="Overwrite an existing image.",
|
|
||||||
action="store_true",
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
"--clean",
|
|
||||||
help="Use MAT2 to clean the image.",
|
|
||||||
action="store_true",
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
"--font-size",
|
|
||||||
help="The font size to use for the text.",
|
|
||||||
type=int,
|
|
||||||
default=150,
|
|
||||||
)
|
|
||||||
return parser
|
|
||||||
|
|
||||||
|
|
||||||
def gegl_graph(height: int, width: int, text: str, font_size: int) -> typing.List[str]:
|
|
||||||
graph = f"""
|
|
||||||
gegl:text
|
|
||||||
string={text}
|
|
||||||
width={width}
|
|
||||||
height={height}
|
|
||||||
color=white
|
|
||||||
font=Heavitas
|
|
||||||
size={font_size}
|
|
||||||
alignment=1
|
|
||||||
vertical-alignment=1
|
|
||||||
gegl:dropshadow
|
|
||||||
x=0
|
|
||||||
y=0
|
|
||||||
color=black
|
|
||||||
opacity=1
|
|
||||||
grow-radius=4
|
|
||||||
radius=0
|
|
||||||
gegl:long-shadow
|
|
||||||
angle=90
|
|
||||||
color=black
|
|
||||||
length=20
|
|
||||||
"""
|
|
||||||
|
|
||||||
return re.sub("\s\s+", "\n", graph).strip().splitlines()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
|
@ -1,43 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
import typing
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
available_remotes = git_remote()
|
|
||||||
|
|
||||||
if len(available_remotes) == 0:
|
|
||||||
print("No remotes found")
|
|
||||||
sys.exit(0)
|
|
||||||
|
|
||||||
# Parse any extra arguments passed to use them in git_push, this way
|
|
||||||
# simple-git-push acts like an aliased command.
|
|
||||||
extra_args = argparse.ArgumentParser(add_help=False).parse_known_args()[1]
|
|
||||||
remotes_to_push = ["origin", "github"]
|
|
||||||
|
|
||||||
for remote in available_remotes:
|
|
||||||
if remote in remotes_to_push:
|
|
||||||
git_push(remote, extra_args)
|
|
||||||
|
|
||||||
|
|
||||||
def git_remote() -> typing.List[str]:
|
|
||||||
"""Run `git remote` and return found remote names."""
|
|
||||||
|
|
||||||
command = ["git", "remote"]
|
|
||||||
output = subprocess.run(command, capture_output=True, encoding="utf8")
|
|
||||||
return output.stdout.splitlines()
|
|
||||||
|
|
||||||
|
|
||||||
def git_push(remote: str, extra_args: typing.List[str]) -> None:
|
|
||||||
"""Run `git push` for the given remote."""
|
|
||||||
|
|
||||||
command = ["git", "push", "--follow-tags", remote, *extra_args]
|
|
||||||
print(f"""Pushing: {" ".join(command)}""")
|
|
||||||
subprocess.run(command)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
|
@ -1,35 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import requests
|
|
||||||
|
|
||||||
HIDDEN_API = "http://0.0.0.0:7813"
|
|
||||||
REMOTE_API = "http://0.0.0.0:7814/api1"
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
parser = argparse.ArgumentParser(description="Small Tauon remote control CLI")
|
|
||||||
group = parser.add_mutually_exclusive_group(required=True)
|
|
||||||
group.add_argument("--next-song", action="store_true")
|
|
||||||
group.add_argument("--play-pause", action="store_true")
|
|
||||||
group.add_argument("--previous-song", action="store_true")
|
|
||||||
group.add_argument("--volume", type=int)
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
if args.next_song:
|
|
||||||
call_api(f"{REMOTE_API}/next")
|
|
||||||
if args.play_pause:
|
|
||||||
call_api(f"{HIDDEN_API}/playpause/")
|
|
||||||
if args.previous_song:
|
|
||||||
call_api(f"{REMOTE_API}/back")
|
|
||||||
if args.volume is not None:
|
|
||||||
call_api(f"{REMOTE_API}/setvolumerel/{args.volume}")
|
|
||||||
|
|
||||||
|
|
||||||
def call_api(endpoint: str) -> None:
|
|
||||||
response = requests.get(endpoint)
|
|
||||||
print(f"HTTP {response.status_code} ({endpoint})")
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
2
.profile
2
.profile
|
@ -1 +1,3 @@
|
||||||
|
export BAUKE_DIR="$HOME/.bauke"
|
||||||
|
export PATH="$PATH:$BAUKE_DIR/bin"
|
||||||
export PATH="$PATH:$HOME/.local/bin"
|
export PATH="$PATH:$HOME/.local/bin"
|
||||||
|
|
15
.zshrc
15
.zshrc
|
@ -1,26 +1,19 @@
|
||||||
source "$HOME/.oh-my-zsh/oh-my-zsh.sh"
|
source "$HOME/.oh-my-zsh/oh-my-zsh.sh"
|
||||||
|
|
||||||
export EDITOR=nano
|
export EDITOR="nano"
|
||||||
export LESS="-F -X $LESS"
|
export LESS="-F -X $LESS"
|
||||||
|
|
||||||
|
export BAUKE_DIR="$HOME/.bauke"
|
||||||
export CARGO_BIN="$HOME/.cargo/bin"
|
export CARGO_BIN="$HOME/.cargo/bin"
|
||||||
export LOCAL_BIN="$HOME/.local/bin"
|
export LOCAL_BIN="$HOME/.local/bin"
|
||||||
|
export PNPM_HOME="$HOME/.local/share/pnpm"
|
||||||
|
|
||||||
export PATH="$PATH:$CARGO_BIN"
|
export PATH="$PATH:$CARGO_BIN"
|
||||||
export PATH="$PATH:$LOCAL_BIN"
|
export PATH="$PATH:$PNPM_HOME"
|
||||||
|
|
||||||
source "$HOME/.aliases.zsh"
|
source "$HOME/.aliases.zsh"
|
||||||
source "$HOME/.functions.zsh"
|
source "$HOME/.functions.zsh"
|
||||||
source "$HOME/.zle.zsh"
|
source "$HOME/.zle.zsh"
|
||||||
|
|
||||||
export NVS_HOME="$HOME/.local/share/nvs"
|
|
||||||
source "$NVS_HOME/nvs.sh"
|
|
||||||
|
|
||||||
export PNPM_HOME="$HOME/.local/share/pnpm"
|
|
||||||
export PATH="$PATH:$PNPM_HOME"
|
|
||||||
|
|
||||||
export DENO_INSTALL="$HOME/.deno"
|
|
||||||
export PATH="$PATH:$DENO_INSTALL/bin"
|
|
||||||
|
|
||||||
eval "$(register-python-argcomplete pipx)"
|
eval "$(register-python-argcomplete pipx)"
|
||||||
eval "$(starship init zsh)"
|
eval "$(starship init zsh)"
|
||||||
|
|
Loading…
Reference in New Issue