tea-create-pr: init
This commit is contained in:
parent
4950694270
commit
0d0df11897
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" \
|
||||
"$@"
|
Loading…
Reference in New Issue
Block a user