1
Fork 0

Compare commits

..

2 Commits

Author SHA1 Message Date
Bauke 5347c71851
Add the get-resolution alias. 2023-02-27 12:14:09 +01:00
Bauke d00d878dc1
Add a way to output the commands as a script. 2023-02-27 12:13:33 +01:00
2 changed files with 32 additions and 6 deletions

View File

@ -29,5 +29,8 @@ alias clipboard-to-file="xclip -sel clip -o > $1"
alias file-to-clipboard="xclip -sel clip -i $1" alias file-to-clipboard="xclip -sel clip -i $1"
alias gpg-decrypt-clipboard="xclip -sel clip -o | gpg --decrypt" alias gpg-decrypt-clipboard="xclip -sel clip -o | gpg --decrypt"
# Video aliases.
alias get-resolution="ffprobe -v error -select_streams v -show_entries stream=width,height -of csv=p=0:s=x"
# See '$BAUKE_DIR/Restic Backups.md' for information. # See '$BAUKE_DIR/Restic Backups.md' for information.
alias restic-b2="source $BAUKE_DIR/data/restic-b2-credentials.zsh && restic" alias restic-b2="source $BAUKE_DIR/data/restic-b2-credentials.zsh && restic"

View File

@ -15,10 +15,15 @@ export const runCommand = new Command()
"--include-directories", "--include-directories",
"Include directories found inside the directories.", "Include directories found inside the directories.",
) )
.action(async ({ directory, includeDirectories }) => { .option(
"--output-script",
"Output the commands as a shell script instead of running them.",
)
.action(async ({ directory, includeDirectories, outputScript }) => {
await actionHandler({ await actionHandler({
directories: directory, directories: directory,
includeDirectories: includeDirectories ?? false, includeDirectories: includeDirectories ?? false,
outputScript: outputScript ?? false,
}); });
}); });
@ -26,6 +31,7 @@ async function actionHandler(
options: { options: {
directories: string[]; directories: string[];
includeDirectories: boolean; includeDirectories: boolean;
outputScript: boolean;
}, },
): Promise<void> { ): Promise<void> {
let command: string[] = []; let command: string[] = [];
@ -135,11 +141,28 @@ async function actionHandler(
continue; continue;
} }
console.log("\n## Output"); if (options.outputScript) {
for (const constructedCommand of constructedCommands) { const defaultFilename = "bulk-run-script.zsh";
await Deno.run({ const { filename } = await prompt.prompt([
cmd: constructedCommand, {
}).status(); type: prompt.Input,
name: "filename",
message: "Filename for the script",
default: defaultFilename,
},
]);
const commands = constructedCommands.map((c) => c.join(" ")).join("\n");
await Deno.writeTextFile(
filename ?? defaultFilename,
`#!/usr/bin/env zsh\n\n${commands}`,
);
} else {
console.log("\n## Output");
for (const constructedCommand of constructedCommands) {
await Deno.run({
cmd: constructedCommand,
}).status();
}
} }
} }
} }