pkgs/git-checkout-github-pr: Add script to checkout GitHub PRs in repos
This commit is contained in:
parent
e082168630
commit
9ddc82b507
@ -114,6 +114,7 @@
|
||||
clerie-sops-config
|
||||
clerie-sops-edit
|
||||
chromium-incognito
|
||||
git-checkout-github-pr
|
||||
iot-data
|
||||
nix-remove-result-links
|
||||
nixfiles-auto-install
|
||||
|
9
pkgs/git-checkout-github-pr/default.nix
Normal file
9
pkgs/git-checkout-github-pr/default.nix
Normal file
@ -0,0 +1,9 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
pkgs.writeShellApplication {
|
||||
name = "git-checkout-github-pr";
|
||||
text = builtins.readFile ./git-checkout-github-pr.sh;
|
||||
runtimeInputs = with pkgs; [
|
||||
git
|
||||
];
|
||||
}
|
44
pkgs/git-checkout-github-pr/git-checkout-github-pr.sh
Executable file
44
pkgs/git-checkout-github-pr/git-checkout-github-pr.sh
Executable file
@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
ID=""
|
||||
REMOTE="origin"
|
||||
LOCAL_BRANCH=""
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
--remote)
|
||||
REMOTE="$2"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
--local-branch)
|
||||
LOCAL_BRANCH="$2"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
if [[ -z "${ID}" ]]; then
|
||||
ID="$1"
|
||||
shift
|
||||
else
|
||||
echo "Unknown option $1"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ -z "${ID}" ]]; then
|
||||
echo "Specify GitHub PR number"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -z "${LOCAL_BRANCH}" ]]; then
|
||||
LOCAL_BRANCH="pr/${ID}"
|
||||
fi
|
||||
|
||||
git fetch "${REMOTE}" "pull/${ID}/head:${LOCAL_BRANCH}"
|
||||
|
||||
git switch "${LOCAL_BRANCH}"
|
@ -7,6 +7,7 @@ final: prev: {
|
||||
clerie-sops-edit = final.callPackage ./clerie-sops/clerie-sops-edit.nix {};
|
||||
clerie-update-nixfiles = final.callPackage ./clerie-update-nixfiles/clerie-update-nixfiles.nix {};
|
||||
chromium-incognito = final.callPackage ./chromium-incognito {};
|
||||
git-checkout-github-pr = final.callPackage ./git-checkout-github-pr {};
|
||||
iot-data = final.python3.pkgs.callPackage ./iot-data {};
|
||||
nix-remove-result-links = final.callPackage ./nix-remove-result-links {};
|
||||
nixfiles-auto-install = final.callPackage ./nixfiles/nixfiles-auto-install.nix {};
|
||||
|
Loading…
Reference in New Issue
Block a user