Czołem.
W swej niezmierzonej dobroci postanowiłem dzisiaj podzielić się swoim wynalazkiem i ułatwić życie osobom, które przygotowywały sobie (lub zamierzają przygotować) miliony plików do zgrania do .atr'a.
Programik przeprowadza konwersję długiej nazwy pliku (LFN) na krótką dokładając w razie potrzeby n-cyfrowy sufiks. Wszystko to dzieje się w kontekście katalogu docelowego (domyślnie katalog bieżący), w którym sprawdzana jest obecność pliku o proponowanej krótkiej nazwie.
Sposób uruchomienia:
$ abbr [opcje] [[katalog_docelowy] plik_źródłowy]
gdzie opcje to:
* -u/-l - upper/lowercase nazwy docelowej
* -c zestaw - nazwa podpada pod wymogi wybranego zestawu, czyli "spartados", "ataridos" lub "mydos"
* -n ilość - nazwa ograniczona jest do ustalonej ilości znaków
* -x ilość - rozszerzenie ograniczone jest do ustalonej ilości znaków
* -s ilość - rozmiar sufiksa ustalony jest na podaną ilość cyfr
Jeśli nie poda się ograniczeń na rozmiar nazwy (-n), wtedy programik dokłada sufiks do nazwy pliku nie obcinając jej, wpp jej maksymalny rozmiar zostanie obcięty o podaną ilość cyfr generowanego sufiksu.
Jeśli nie wybierze się zestawu, nazwa nie będzie filtrowana na zgodność z wymogami DOSu (atarowskiego).
Dla uniknięcia niejednoznaczności z nazwami plików w katalogu docelowym zaleca się stosowanie przełączników -l lub -u.
UWAGA! Program nie tworzy żadnych plików, a jedynie proponuje nazwę docelową.
Jeśli program nie potrafi zaproponować nazwy poruszając się w zadanych ograniczeniach nie zwraca nic prócz kodu wyjścia 1 (jeśli znalazł wypisuje nazwę i zwraca kod wyjścia 0).
Aby np. Wsadzić do katalogu ~/ATARI wszystkie pliki z katalogu bieżącego, ustalić im nazwy 8+3 pisane wielkimi literami należy wykonać:
for f in *; do F=$(abbr -u -n 8 -x 3 ~/ATARI $f); if [ -n "$F" ]; then cp $f $F; fi; done
Program jest dostępny tutaj.
Tradycyjnie zapraszam do testowania i zgłaszania bugów i żądań.
P.S. Program jest atari8fs compatible :).
Edit: Aaaaaa. Jak to zainstalować:
$ wget http://mono.atari.pl/fuse/abbr-0.3.zip
$ unzip -d abbr-0.3 abbr-0.3.zip
$ cd abbr-0.3
$ make
$ sudo make install
niewiedza buduje, wiedza rujnuje