From 0d0df11897f4161f6c62d3c1ada85703e7957d4b Mon Sep 17 00:00:00 2001 From: DavHau Date: Fri, 28 Jul 2023 14:11:19 +0200 Subject: [PATCH 1/3] tea-create-pr: init --- flake-parts/tea-create-pr/default.nix | 26 ++++++++++++++++++++++ flake-parts/tea-create-pr/script.sh | 31 +++++++++++++++++++++++++++ flake.nix | 1 + 3 files changed, 58 insertions(+) create mode 100644 flake-parts/tea-create-pr/default.nix create mode 100644 flake-parts/tea-create-pr/script.sh diff --git a/flake-parts/tea-create-pr/default.nix b/flake-parts/tea-create-pr/default.nix new file mode 100644 index 00000000..c2c7df2e --- /dev/null +++ b/flake-parts/tea-create-pr/default.nix @@ -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; + }; +} diff --git a/flake-parts/tea-create-pr/script.sh b/flake-parts/tea-create-pr/script.sh new file mode 100644 index 00000000..f2cd6fb0 --- /dev/null +++ b/flake-parts/tea-create-pr/script.sh @@ -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" \ + "$@" diff --git a/flake.nix b/flake.nix index a889ed2b..8463cb6b 100644 --- a/flake.nix +++ b/flake.nix @@ -21,6 +21,7 @@ ./flake-parts/formatting.nix ./flake-parts/modules.nix ./flake-parts/packages.nix + ./flake-parts/tea-create-pr ./flake-parts/writers ./templates/flake-module.nix ./templates/python-project/flake-module.nix From 60ba233e7760ca90d8b4e85e825472c8f1112fd4 Mon Sep 17 00:00:00 2001 From: DavHau Date: Fri, 28 Jul 2023 14:57:23 +0200 Subject: [PATCH 2/3] devShells.default: init --- .envrc | 1 + flake-parts/devShells/default.nix | 14 ++++++++++++++ flake.nix | 1 + 3 files changed, 16 insertions(+) create mode 100644 .envrc create mode 100644 flake-parts/devShells/default.nix diff --git a/.envrc b/.envrc new file mode 100644 index 00000000..3550a30f --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/flake-parts/devShells/default.nix b/flake-parts/devShells/default.nix new file mode 100644 index 00000000..fca22b4a --- /dev/null +++ b/flake-parts/devShells/default.nix @@ -0,0 +1,14 @@ +{ + perSystem = { + lib, + pkgs, + self', + ... + }: { + devShells.default = pkgs.mkShell { + packages = [ + pkgs.tea + self'.packages.tea-create-pr + ]; + }; +} diff --git a/flake.nix b/flake.nix index 8463cb6b..d92345ec 100644 --- a/flake.nix +++ b/flake.nix @@ -18,6 +18,7 @@ "aarch64-linux" ]; imports = [ + ./flake-parts/devShells ./flake-parts/formatting.nix ./flake-parts/modules.nix ./flake-parts/packages.nix From dc094536175ac85c48dc27092f3babb4879d44c2 Mon Sep 17 00:00:00 2001 From: DavHau Date: Fri, 28 Jul 2023 15:03:06 +0200 Subject: [PATCH 3/3] merge-after-ci: init --- flake-parts/devShells/default.nix | 23 +++++++++++---------- flake-parts/merge-after-ci/default.nix | 28 ++++++++++++++++++++++++++ flake-parts/merge-after-ci/script.sh | 7 +++++++ flake.nix | 1 + 4 files changed, 48 insertions(+), 11 deletions(-) create mode 100644 flake-parts/merge-after-ci/default.nix create mode 100644 flake-parts/merge-after-ci/script.sh diff --git a/flake-parts/devShells/default.nix b/flake-parts/devShells/default.nix index fca22b4a..445cf2e6 100644 --- a/flake-parts/devShells/default.nix +++ b/flake-parts/devShells/default.nix @@ -1,14 +1,15 @@ { - perSystem = { - lib, - pkgs, - self', - ... - }: { - devShells.default = pkgs.mkShell { - packages = [ - pkgs.tea - self'.packages.tea-create-pr - ]; + perSystem = + { pkgs + , self' + , ... + }: { + devShells.default = pkgs.mkShell { + packages = [ + pkgs.tea + self'.packages.tea-create-pr + self'.packages.merge-after-ci + ]; + }; }; } diff --git a/flake-parts/merge-after-ci/default.nix b/flake-parts/merge-after-ci/default.nix new file mode 100644 index 00000000..0c8d8a5e --- /dev/null +++ b/flake-parts/merge-after-ci/default.nix @@ -0,0 +1,28 @@ +{ + perSystem = + { config + , pkgs + , self' + , ... + }: + let + name = builtins.baseNameOf ./.; + script = config.writers.writePureShellScriptBin + name + [ + pkgs.bash + pkgs.coreutils + pkgs.git + pkgs.tea + pkgs.openssh + self'.packages.tea-create-pr + ] + '' + export EDITOR=${pkgs.vim}/bin/vim + bash ${./script.sh} "$@" + ''; + in + { + packages.${name} = script; + }; +} diff --git a/flake-parts/merge-after-ci/script.sh b/flake-parts/merge-after-ci/script.sh new file mode 100644 index 00000000..2373c426 --- /dev/null +++ b/flake-parts/merge-after-ci/script.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +set -euo pipefail + +remoteName="${1:-origin}" +targetBranch="${2:-main}" +shift && shift +tea-create-pr "$remoteName" "$targetBranch" --assignees clan-bot "$@" diff --git a/flake.nix b/flake.nix index d92345ec..2644215f 100644 --- a/flake.nix +++ b/flake.nix @@ -20,6 +20,7 @@ imports = [ ./flake-parts/devShells ./flake-parts/formatting.nix + ./flake-parts/merge-after-ci ./flake-parts/modules.nix ./flake-parts/packages.nix ./flake-parts/tea-create-pr