From 312470869f99b72b8d1ec68376b3288ce575db0f Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sun, 1 Oct 2023 15:18:26 -0300 Subject: Feat: hydractl: sync-media: support for specifying a repository in the command line --- share/hydractl/sync-media | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/share/hydractl/sync-media b/share/hydractl/sync-media index 09f7239..6486198 100755 --- a/share/hydractl/sync-media +++ b/share/hydractl/sync-media @@ -9,6 +9,7 @@ hydra_config_load # Parameters REMOTE="$1" +REPOSITORY="$2" VOLUME="/media/$REMOTE" DOMAIN="`facter domain`" HOST="`facter hostname`" @@ -182,8 +183,15 @@ $sudo chown $WHOAMI. $CACHE $sudo chown $WHOAMI. $CACHE/* sync_media_incoming_perms +# Check if a specific repository was passed via the command line +if [ -z "$REPOSITORY" ] && [ -d "$CACHE/$REPOSITORY" ] && ! echo "$REPOSITORY" | grep -q '--'; then + REPOSITORIES="$REPOSITORY" +else + REPOSITORIES="`ls $CACHE`" +fi + # Iterate over existing repositories in the local cache -for folder in `ls $CACHE`; do +for folder in $REPOSITORIES; do # Sync each repository in the local cache if [ -d "$CACHE/$folder/.git/annex" ]; then if [ "`git -C $CACHE/$folder config sync-media.skip`" == "true" ]; then @@ -237,8 +245,15 @@ done # Process removable or remote media if [ ! -z "$DRIVE" ] && [ -d "$VOLUME/$MEDIA" ]; then + # Check if a specific repository was passed via the command line + if [ -z "$REPOSITORY" ] && [ -d "$VOLUME/$MEDIA/$REPOSITORY" ] && ! echo "$REPOSITORY" | grep -q '--'; then + REPOSITORIES="$REPOSITORY" + else + REPOSITORIES="`ls $VOLUME/$MEDIA`" + fi + # Iterate over existing repositories in the removable media - for folder in `ls $VOLUME/$MEDIA`; do + for folder in $REPOSITORIES; do # Sync each local repository in the removable media if [ -d "$VOLUME/$MEDIA/$folder/.git/annex" ]; then -- cgit v1.2.3