From e79bedc9409efcaaee51126e7617c6f2a6c23d24 Mon Sep 17 00:00:00 2001 From: Jeffrey Serio <23226432+hyperreal64@users.noreply.github.com> Date: Wed, 8 Nov 2023 09:55:42 -0600 Subject: [PATCH] Add new lispify script --- lispify | 42 ++++++++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/lispify b/lispify index 489c625..4d82692 100755 --- a/lispify +++ b/lispify @@ -1,12 +1,34 @@ -#!/usr/bin/env zsh +#!/bin/bash -# Lispify - convert file names to-lisp-case -filename=$(basename -- "$1") -extension="${filename##*.}" -filename="${filename%.*}" -new_filename=$(echo ${filename// /-} | tr '_' '-' | tr -cd '[:alnum:]._-') -new_basename=$(echo "$new_filename.$extension") -mv -i "$1" "$new_basename" -if ! [ "$new_basename" = "${new_basename:l}" ]; then - mv -i "$new_basename" "${new_basename:l}" +# This script was written entirely by ChatGPT 4. + +# Check for an argument +if [ $# -eq 0 ]; then + echo "Usage: $0 filename" + exit 1 +fi + +# A function to convert a string to Lisp case +to_lisp_case() { + echo "$1" | awk '{ gsub(/_/,"-"); print tolower($0) }' | sed 's/[A-Z]/-\L&/g' | sed 's/^-//' +} + +# The filename is the first argument +file="$1" + +# Check if the file exists +if [ ! -f "$file" ]; then + echo "Error: File does not exist." + exit 1 +fi + +# Convert the filename to Lisp case +new_name=$(to_lisp_case "$file") + +# Rename the file if the new name is different from the original +if [ "$file" != "$new_name" ]; then + mv -- "$file" "$new_name" + echo "File renamed to $new_name" +else + echo "File name is already in Lisp case." fi