diff options
author | Patrick Spek <p.spek@tyil.nl> | 2023-03-08 10:04:12 +0100 |
---|---|---|
committer | Patrick Spek <p.spek@tyil.nl> | 2023-03-08 10:04:12 +0100 |
commit | fdef03a6176461256ad2b165008131d63582add9 (patch) | |
tree | ed921fd27ffa18c5a1a012941341df72096af2fa /lib | |
parent | 61e464e037a7436a2ac050fac8258094ba095514 (diff) |
Split pull functionality into its own subcommand
Diffstat (limited to 'lib')
-rw-r--r-- | lib/main.bash | 6 | ||||
-rw-r--r-- | lib/subcommands/pull.bash | 15 | ||||
-rw-r--r-- | lib/subcommands/sync.bash | 13 |
3 files changed, 22 insertions, 12 deletions
diff --git a/lib/main.bash b/lib/main.bash index 12033db..d8d4cc4 100644 --- a/lib/main.bash +++ b/lib/main.bash @@ -80,6 +80,7 @@ Usage: $BASHTARD_NAME diff $BASHTARD_NAME init [repository] $BASHTARD_NAME pkg <install|uninstall> <name> + $BASHTARD_NAME pull $BASHTARD_NAME ssh <command> $BASHTARD_NAME sync [playbook] $BASHTARD_NAME sysinfo @@ -90,10 +91,11 @@ Perform maintenance on your infra. Commands: add Add a configuration playbook to this machine. - init Initialize the $BASHTARD_NAME configuration system. - pkg Interface into the pkg abstraction used by $BASHTARD_NAME. del Remove a configuration playbook from this machine. diff Show a diff of all uncommitted changes. + init Initialize the $BASHTARD_NAME configuration system. + pkg Interface into the pkg abstraction used by $BASHTARD_NAME. + pull Pull the latest changes through git. ssh Run a given command on all known hosts. sync Pull latest changes through git, and synchronize all added playbooks. diff --git a/lib/subcommands/pull.bash b/lib/subcommands/pull.bash new file mode 100644 index 0000000..4061f1b --- /dev/null +++ b/lib/subcommands/pull.bash @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +# SPDX-FileCopyrightText: 2023 Patrick Spek <p.spek@tyil.nl> +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +subcommand() +{ + notice "bashtard/pull" "Pulling latest changes in $BASHTARD_ETCDIR" + + git -C "$BASHTARD_ETCDIR" stash + git -C "$BASHTARD_ETCDIR" pull origin master || return 4 + git -C "$BASHTARD_ETCDIR" submodule update --recursive --remote || return 4 + git -C "$BASHTARD_ETCDIR" stash pop +} diff --git a/lib/subcommands/sync.bash b/lib/subcommands/sync.bash index ed03faa..1ae2aae 100644 --- a/lib/subcommands/sync.bash +++ b/lib/subcommands/sync.bash @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# SPDX-FileCopyrightText: 2022 Patrick Spek <p.spek@tyil.nl> +# SPDX-FileCopyrightText: 2023 Patrick Spek <p.spek@tyil.nl> # # SPDX-License-Identifier: AGPL-3.0-or-later @@ -15,15 +15,8 @@ subcommand() return fi - notice "bashtard/sync" "Syncing $BASHTARD_ETCDIR" - pushd -- "$BASHTARD_ETCDIR" > /dev/null || return 4 - - git stash - git pull origin master || return 4 - git submodule update --recursive --remote || return 4 - git stash pop - - popd > /dev/null || return 4 + # Pull latest changes + "$BASHTARD_BIN" pull # Run a sync for each registered playbook for this host while read -r playbook |