Select Git revision
create-issue.nix
create-issue.nix 3.16 KiB
{pkgs', ...}: let
in
pkgs'.writeShellScriptBin "create-issue" ''
source ${pkgs'.common}/bin/common
echo_section "create-issue"
echo_hint "This script will check the code for formatting and linting issues"
echo_hint "The command is executed in the current working directory and not in a nix derivation."
cd_working_dir
echo_step "enter issue title"
issue_text=$(${pkgs'.gum}/bin/gum input --placeholder "Enter issue title")
echo_step "enter issue description (End with Ctrl+D)"
issue_description=$(${pkgs'.gum}/bin/gum write --placeholder "Enter issue description. End with Ctrl+D")
if [[ -z "$issue_text" ]]; then
echo_fail "Issue title is empty. Exiting."
exit 1
fi
escaped_issue_text=$(${pkgs'.gnused}/bin/sed 's/"/\\"/g' <<< "$issue_text")
escaped_issue_description=$(${pkgs'.gnused}/bin/sed 's/"/\\"/g' <<< "$issue_description")
issue_output=$(${pkgs'.glab}/bin/glab issue create -t"$issue_text" --no-editor --description "$issue_description")
if [ $? -ne 0 ]; then
echo_fail "Issue creation failed. Exiting."
exit 1
fi
issue_id=$(echo "$issue_output" | ${pkgs'.gnugrep}/bin/grep -oP '(?<=/issues/)\d+')
if [ -z "$issue_id" ]; then
echo_fail "Issue creation failed. Exiting."
exit 1
fi
echo_ok "Issue with id $issue_id created"
echo_step "create new issue file in test/cases"
issue_dir="development/issues/open"
${pkgs'.coreutils}/bin/mkdir -p "$issue_dir"
${pkgs'.coreutils}/bin/cat <<EOF > $issue_dir/''${issue_id}.mjs
/**
* @file development/issues/open/''${issue_id}.mjs
* @url https://gitlab.schukai.com/oss/libraries/javascript/monster/-/issues/''${issue_id}
* @description ''${escaped_issue_text}
* @issue ''${issue_id}
*/
import "../../../source/components/style/property.pcss";
import "../../../source/components/style/normalize.pcss";
import "../../../source/components/style/typography.pcss";
EOF
cat <<EOF > $issue_dir/''${issue_id}.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>''${escaped_issue_text} #''${issue_id}</title>
<script src="./''${issue_id}.mjs" type="module"></script>
</head>
<body>
<h1>''${escaped_issue_text} #''${issue_id}</h1>
<p>''${escaped_issue_description}</p>
<ul>
<li><a href="https://gitlab.schukai.com/oss/libraries/javascript/monster/-/issues/''${issue_id}">Issue #''${issue_id}</a></li>