tea-create-pr: init
This commit is contained in:
26
flake-parts/tea-create-pr/default.nix
Normal file
26
flake-parts/tea-create-pr/default.nix
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
perSystem =
|
||||||
|
{ config
|
||||||
|
, pkgs
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
name = builtins.baseNameOf ./.;
|
||||||
|
script = config.writers.writePureShellScriptBin
|
||||||
|
name
|
||||||
|
[
|
||||||
|
pkgs.bash
|
||||||
|
pkgs.coreutils
|
||||||
|
pkgs.git
|
||||||
|
pkgs.tea
|
||||||
|
pkgs.openssh
|
||||||
|
]
|
||||||
|
''
|
||||||
|
export EDITOR=${pkgs.vim}/bin/vim
|
||||||
|
bash ${./script.sh} "$@"
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
packages.${name} = script;
|
||||||
|
};
|
||||||
|
}
|
||||||
31
flake-parts/tea-create-pr/script.sh
Normal file
31
flake-parts/tea-create-pr/script.sh
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
remoteName="${1:-origin}"
|
||||||
|
targetBranch="${2:-main}"
|
||||||
|
shift && shift
|
||||||
|
currentBranch="$(git rev-parse --abbrev-ref HEAD)"
|
||||||
|
user="$(tea login list -o simple | cut -d" " -f4)"
|
||||||
|
tempRemoteBranch="$user-$currentBranch"
|
||||||
|
|
||||||
|
git log --reverse --pretty="format:%s%n%n%b%n%n" "$remoteName/$targetBranch..HEAD" > "$TMPDIR"/commit-msg
|
||||||
|
|
||||||
|
$EDITOR "$TMPDIR"/commit-msg
|
||||||
|
|
||||||
|
COMMIT_MSG=$(cat "$TMPDIR"/commit-msg)
|
||||||
|
|
||||||
|
firstLine=$(echo "$COMMIT_MSG" | head -n1)
|
||||||
|
rest=$(echo "$COMMIT_MSG" | tail -n+2)
|
||||||
|
|
||||||
|
if [[ "$firstLine" == "$rest" ]]; then
|
||||||
|
rest=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
git push "$remoteName" HEAD:refs/heads/"$tempRemoteBranch"
|
||||||
|
|
||||||
|
tea pr create \
|
||||||
|
--title "$firstLine" \
|
||||||
|
--description "$rest" \
|
||||||
|
--head "$tempRemoteBranch" \
|
||||||
|
--base "$targetBranch" \
|
||||||
|
"$@"
|
||||||
@@ -21,6 +21,7 @@
|
|||||||
./flake-parts/formatting.nix
|
./flake-parts/formatting.nix
|
||||||
./flake-parts/modules.nix
|
./flake-parts/modules.nix
|
||||||
./flake-parts/packages.nix
|
./flake-parts/packages.nix
|
||||||
|
./flake-parts/tea-create-pr
|
||||||
./flake-parts/writers
|
./flake-parts/writers
|
||||||
./templates/flake-module.nix
|
./templates/flake-module.nix
|
||||||
./templates/python-project/flake-module.nix
|
./templates/python-project/flake-module.nix
|
||||||
|
|||||||
Reference in New Issue
Block a user