News for hackers. Stuff that matters.
Re:Explainer: .DS_Store Files by makecheck on Saturday November 27, 2021 @09:20PM (#29365601)
This is my script to “clean up” a typical macOS zip file. It assumes you’ve started by asking the Finder to “Compress” (which creates a zip file but one riddled with macOS-isms).

    #!/bin/bash
    
    zipfile=$1
    if [ "x$zipfile" = "x" ] ; then
      echo "$0: .zip file expected" >&2
      exit 1
    fi
    
    zip -d "${zipfile}" "__MACOSX*"
    zip -d "${zipfile}" ".DS_Store"
    zip -d "${zipfile}" "*/.DS_Store"
    unzip -l "${zipfile}" | sort -k 5
Re:Explainer: .DS_Store Files by rahen on Sunday November 28, 2021 @05:41AM (#29367853)
You probably want to test:

    if [ ! -f "$zipfile" ]
Instead of

    if [ "x$zipfile" = "x" ]
Re:Explainer: .DS_Store Files by smarx007 on Sunday November 28, 2021 @05:41PM (#29373892)
Thank you! I took your script, suggestions in this thread and added some of my sauce:

    #!/usr/bin/env bash

    set -exuo pipefail
        
    VERBOSE=false
    while getopts "v" arg; do
    case $arg in
        v) VERBOSE=true;;
    esac
    done
    shift $((OPTIND-1))


    zipfile=$1
    if [ ! -f "$zipfile" ] || [ ! "${zipfile##*.}" = "zip" ] ; then
        echo "$0: .zip file expected" >&2
        exit 1
    fi

    zip -d "${zipfile}" "__MACOSX*" ".DS_Store" "*/.DS_Store" "Thumbs.db" "*/Thumbs.db"

    if [ $VERBOSE = true ]; then
        unzip -l "${zipfile}" | sort -k 5
    fi
Re:Explainer: .DS_Store Files by xorcist on Sunday November 28, 2021 @08:17AM (#29368672)
Processing the zip file three times over seems a bit excessive?

  zip -d "${zipfile}" "__MACOSX*" ".DS_Store" "*/.DS_Store"
Re:Explainer: .DS_Store Files by makecheck on Sunday November 28, 2021 @10:03AM (#29369393)
True but performance wasn’t the goal (I tend to run it once on smallish files).

This is easier to extend if I see something new to exclude (or comment-out some rule).