README
¶
File Converter CLI
Belgeleri, görselleri, sesleri ve videoları tamamen yerel ortamda dönüştüren modern bir CLI/TUI aracı.
İçindekiler
- Genel Bakış
- Özellikler
- Kurulum
- Hızlı Başlangıç
- Shell Completion
- Komut Referansı
- Flag Referansı
- Pipeline Spec (JSON)
- Desteklenen Formatlar
- Harici Bağımlılıklar
- Yapılandırma
- Sorun Giderme
- Geliştirme
- Proje Yapısı
- Katkı
- Lisans
Genel Bakış
File Converter CLI, dosya dönüştürme işlemlerini internet servislerine yükleme yapmadan yerel makinede gerçekleştiren bir komut satırı uygulamasıdır.
- Gizlilik odaklıdır: dosyalar cihazdan çıkmaz.
- İki kullanım modu sunar: CLI (otomasyon/script) ve interaktif TUI (menü tabanlı).
Özellikler
- Belge, görsel, ses ve video dönüşümleri.
- Sabit görevlerde ses ve video manipülasyonu: videodan ses çıkarma (
extract-audio), belirli anından kare yakalama (snapshot), videoları sıralı birleştirme (merge) ve ses dizeleme (audio normalize). - WebP encode desteği: tüm görsel formatlarından WebP'ye dönüşüm (pure Go, lossless VP8L).
- HEIC/HEIF kaynak desteği: iPhone görsellerini PNG/JPG/WEBP/BMP/GIF/TIFF/ICO formatlarına dönüştürme.
- SVG kaynak desteği: SVG dosyalarını raster görsellere ve PDF çıktısına dönüştürme.
- Görsel optimizasyon:
--optimizeile dosya boyutunu minimize etme,--target-size 500kbile hedef boyuta yaklaşma. - Dosya bilgisi komutu:
infoile format, çözünürlük, codec, süre, bitrate bilgisi (JSON çıktı desteği). mp4 -> gifdahil video dönüşümü.- Uzun FFmpeg işlemlerinde gerçek zamanlı progress bar ve ETA gösterimi (CLI, TUI ve batch).
- Video düzenleme (
video trim):clipmodunda aralık çıkarır,removemodunda aralığı silip kalan parçaları birleştirir. - Video trim preview/plan: CLI’de
--dry-run/--preview; TUI’de çalıştırmadan önce plan onayı ekranı. - Video trim codec stratejisi:
--codec auto(varsayılan) hedef formata göre uyumlu codec seçer. - TUI video trim timeline adımı: başlangıç/bitiş aralığını klavye ile hızlı kaydırma ve remove modunda çoklu segment yönetimi (
a/n/p/d/m). - Görsel/video boyutlandırma: manuel (
px/cm) veya hazır preset (story,square,fullhdvb.). - Oranı koruyarak dikey/yatay uyarlama (
pad,fit,fill,stretch);padmodunda siyah boşluk desteği. - Interaktif ana menüde ayrı akışlar:
Dosya Dönüştür,Toplu Dönüştür,Klasör İzle,Video Düzenle (Klip/Sil),Boyutlandır,Toplu Boyutlandır,Dosya Bilgisi. - Batch dönüşüm (dizin veya glob pattern).
- Paralel işleme (
--workers) ile yüksek performans. - Ön izleme modu (
--dry-run) ile risksiz batch planlama. - Çıktı dizinine yazarken klasör yapısını koruma (
batch --preserve-tree). - Çakışma politikası (
--on-conflict:overwrite,skip,versioned). - Otomatik retry (
--retry,--retry-delay) ve raporlama (--report,--report-file). - Hazır profil sistemi (
--profile:social-story,podcast-clean,archive-lossless). - Metadata kontrolü (
--preserve-metadata,--strip-metadata). - Klasör izleme ile otomatik dönüşüm (
watchkomutu, event-driven + polling fallback). - Makine-okunur CLI çıktısı (
--output-format json). - Proje bazlı ayarlar:
.fileconverter.toml(flag > env > project config > default). - Harici bağımlılık kontrolü (FFmpeg, LibreOffice, Pandoc).
- Format alias desteği (
jpeg -> jpg,tiff -> tif,markdown -> md).
Kurulum
1. Go ile kurulum (önerilen)
go install github.com/mlihgenel/fileconverter-cli@latest
Kurulum sonrası herhangi bir dizinden çalıştırabilmek için binary yolunun PATH içinde olması gerekir.
go env GOBIN doluysa o dizini, boşsa $(go env GOPATH)/bin dizinini PATH içine ekleyin.
2. PATH ayarı (herhangi bir dizinden çalıştırmak için)
macOS / Linux (zsh veya bash)
echo 'export PATH="$PATH:$(go env GOPATH)/bin"' >> ~/.zshrc
source ~/.zshrc
bash kullanıyorsanız ~/.bashrc veya ~/.bash_profile dosyasına ekleyin.
Windows (PowerShell)
$gopath = go env GOPATH
setx PATH "$env:PATH;$gopath\bin"
Ardından yeni bir terminal açın.
3. Kaynaktan derleme
git clone https://github.com/mlihgenel/fileconverter-cli.git
cd fileconverter-cli
go build -o fileconverter-cli .
./fileconverter-cli --help
Not: Sürüm bilgisi artık build metadata'dan otomatik okunur; main.go içinde elle sürüm güncellemek gerekmez.
Release için isterseniz sürümü build anında net verebilirsiniz:
go build -ldflags "-X main.version=$(git describe --tags --always --dirty | sed 's/^v//')" -o fileconverter-cli .
Windows için:
go build -o fileconverter-cli.exe .
.\fileconverter-cli.exe --help
Hızlı Başlangıç
Yardım menüsü
fileconverter-cli --help
fileconverter-cli help convert
fileconverter-cli help batch
fileconverter-cli help watch
fileconverter-cli help pipeline
fileconverter-cli help video
fileconverter-cli help formats
fileconverter-cli help resize-presets
fileconverter-cli help completion
İnteraktif mod (TUI)
fileconverter-cli
Interaktif ana menü (bölüm bazlı):
Dönüştürme: tek dosya, toplu ve watch akışlarıVideo Araçları: klip çıkarma ve aralık silme + birleştirme (başlangıç + süreya dabaşlangıç + bitiş)Boyutlandırma: tek dosya ve toplu boyutlandırmaBilgi ve Ayarlar: desteklenen formatlar, sistem kontrolü, ayarlar
TUI açmadan doğrudan CLI ile çalışmak için:
fileconverter-cli --help
fileconverter-cli help <komut>
Shell completion
# Zsh
fileconverter-cli completion zsh > "${fpath[1]}/_fileconverter-cli"
# Bash
fileconverter-cli completion bash > /etc/bash_completion.d/fileconverter-cli
Detaylar ve diğer shell'ler için:
fileconverter-cli completion --help
Format sorgulama
fileconverter-cli formats
fileconverter-cli formats --from mp4
fileconverter-cli formats --to gif
fileconverter-cli formats --output-format json
Tek dosya dönüşümü
# Belge
fileconverter-cli convert belge.md --to pdf
# Görsel
fileconverter-cli convert fotograf.jpeg --to png
# HEIC/HEIF görseli PNG'ye dönüştür
fileconverter-cli convert IMG_1234.HEIC --to png
# SVG dosyasını PDF'e dönüştür
fileconverter-cli convert logo.svg --to pdf
# Görseli WebP'ye dönüştür
fileconverter-cli convert fotograf.png --to webp
# Görsel optimizasyonu (dosya boyutunu küçült)
fileconverter-cli convert fotograf.jpg --to jpg --optimize
fileconverter-cli convert fotograf.jpg --to jpg --target-size 500kb
# Ses
fileconverter-cli convert ses.mp3 --to wav
# Video -> GIF
fileconverter-cli convert klip.mp4 --to gif --quality 80
# Yatay videoyu dikeye çevir (siyah boşluklarla oran koru)
fileconverter-cli convert klip.mp4 --to mp4 --preset story --resize-mode pad
# Görseli manuel ölçüyle boyutlandır (cm)
fileconverter-cli convert fotograf.webp --to png --width 12 --height 18 --unit cm --dpi 300
# Profil kullanımı (story çıktı için)
fileconverter-cli convert klip.mp4 --to mp4 --profile social-story
# Metadata temizleme
fileconverter-cli convert kamera.mov --to mp4 --strip-metadata
# Dosya bilgisi görme
fileconverter-cli info fotograf.jpg
fileconverter-cli info video.mp4 --output-format json
Toplu (batch) dönüşüm
# Dizindeki tüm .md dosyalarını PDF yap
fileconverter-cli batch ./docs --from md --to pdf
# Alt dizinlerle birlikte
fileconverter-cli batch ./videolar --from mp4 --to gif --recursive
# Ön izleme (dönüştürmeden planı gösterir)
fileconverter-cli batch ./resimler --from jpg --to png --dry-run
# Glob kullanımı
fileconverter-cli batch "*.png" --from png --to jpg --quality 85
# Toplu olarak story ölçüsüne getir
fileconverter-cli batch ./videolar --from mp4 --to mp4 --preset story --resize-mode pad
# Recursive batch'te çıktı klasörü altında kaynak dizin yapısını koru
fileconverter-cli batch ./assets --from png --to jpg --recursive --output ./export --preserve-tree
# Çakışma ve retry ile JSON rapor üret
fileconverter-cli batch ./resimler --from jpg --to png --on-conflict versioned --retry 2 --retry-delay 1s --report json --report-file ./reports/batch.json
# Önceki JSON raporundan başarılı işleri atlayarak devam et
fileconverter-cli batch ./resimler --from jpg --to png --resume-from-report ./reports/batch.json
# Profil + metadata modu ile batch
fileconverter-cli batch ./videolar --from mp4 --to mp4 --profile social-story --strip-metadata
Watch modu (otomatik dönüşüm)
# incoming klasörünü izle, yeni webp dosyalarını jpg yap
fileconverter-cli watch ./incoming --from webp --to jpg
# Alt dizinlerle birlikte izle
fileconverter-cli watch ./videolar --from mp4 --to gif --recursive --quality 80
# Profil ile izle
fileconverter-cli watch ./incoming --from mov --to mp4 --profile archive-lossless
Pipeline modu (çok adımlı akış)
# Pipeline spec dosyasını çalıştır
fileconverter-cli pipeline run ./pipeline.json
# Profil ve metadata ile çalıştır, JSON rapor al
fileconverter-cli pipeline run ./pipeline.json --profile social-story --strip-metadata --report json --report-file ./reports/pipeline.json
# Önceki JSON rapora göre başarılı step'leri atlayıp kaldığı yerden devam et
fileconverter-cli pipeline run ./pipeline.json --resume-from-report ./reports/pipeline.json
Örnek spec dosyası: pipeline.example.json
Pipeline Spec (JSON)
| Alan | Zorunlu | Açıklama |
|---|---|---|
input |
Evet | Pipeline'ın başlangıç dosyası |
output |
Hayır | Son adımın nihai çıktı yolu |
steps[] |
Evet | Sıralı işlem adımları |
steps[].type |
Evet | convert veya audio-normalize |
steps[].to |
convert için evet |
Hedef format (mp3, wav, pdf vb.) |
steps[].quality |
Hayır | Adım bazlı kalite (1-100) |
steps[].output |
Hayır | O adım için özel çıktı yolu |
steps[].metadata_mode |
Hayır | auto, preserve, strip |
steps[].target_lufs |
audio-normalize için hayır |
Hedef LUFS |
steps[].target_tp |
audio-normalize için hayır |
Hedef true peak |
steps[].target_lra |
audio-normalize için hayır |
Hedef loudness range |
Video ve Ses Araçları
# Videodan ses kanalını MP3 olarak çıkar
fileconverter-cli video extract-audio klip.mp4
# Videodan ses kanalını re-encode etmeden (copy) orijinal formatıyla çıkar
fileconverter-cli video extract-audio orijinal.mov --copy
# Videonun 30. saniyesinden tek kare (snapshot) al
fileconverter-cli video snapshot klip.mp4 --at 30 --to jpg
# Videonun tam ortasından (%50) yüksek kalite snapshot al
fileconverter-cli video snapshot klip.mp4 --at %50 --to png
# Aynı codec'e sahip parçaları hızlıca birleştir (concat demuxer)
fileconverter-cli video merge part1.mp4 part2.mp4 --name full_video
# Farklı codec'lere sahip videoları re-encode ederek birleştir
fileconverter-cli video merge iphone.mov web.webm --to mp4 --reencode --quality 80
# Ses dosyasının ses seviyesini EBU R128 (LUFS) standardına göre normalize et
fileconverter-cli audio normalize podcast.mp3 --target-lufs -16
# 5. saniyeden başlayıp 10 saniyelik klip çıkar
fileconverter-cli video trim input.mp4 --start 00:00:05 --duration 10
# 23-25 saniye aralığını videodan sil ve kalan parçaları birleştir
fileconverter-cli video trim input.mp4 --mode remove --start 00:00:23 --duration 2
# Birden fazla aralığı tek seferde sil (sadece remove modunda)
fileconverter-cli video trim input.mp4 --mode remove --ranges "00:00:05-00:00:08,00:00:20-00:00:25"
# Preview/plan: işlemden önce tam etkiyi gör (dosya yazmaz)
fileconverter-cli video trim input.mp4 --mode remove --ranges "5-8,20-25" --dry-run
Komut Referansı
| Komut | Ne yapar | Örnek |
|---|---|---|
fileconverter-cli |
İnteraktif TUI modunu başlatır | fileconverter-cli |
fileconverter-cli convert <dosya> |
Tek dosya dönüşümü | fileconverter-cli convert input.mp4 --to gif |
fileconverter-cli batch <dizin/glob> |
Toplu dönüşüm | fileconverter-cli batch ./src --from md --to html |
fileconverter-cli watch <dizin> |
Klasörü izleyip otomatik dönüşüm yapar | fileconverter-cli watch ./incoming --from webp --to jpg |
fileconverter-cli pipeline run <dosya> |
JSON pipeline akışını çalıştırır | fileconverter-cli pipeline run ./pipeline.json |
fileconverter-cli video trim <dosya> |
clip: aralık çıkarır, remove: aralığı siler + birleştirir |
fileconverter-cli video trim input.mp4 --mode remove --start 00:00:23 --duration 2 |
fileconverter-cli video extract-audio <dosya> |
Videodan ses kanalını çıkarır | fileconverter-cli video extract-audio input.mp4 --to wav |
fileconverter-cli video snapshot <dosya> |
Videodan tek kare seçer | fileconverter-cli video snapshot input.mp4 --at %50 |
fileconverter-cli video merge <dosyalar...> |
Birden fazla videoyu birleştirir | fileconverter-cli video merge part1.mp4 part2.mp4 |
fileconverter-cli audio normalize <dosya> |
Ses seviyesini EBU R128'e göre dengeler | fileconverter-cli audio normalize ses.mp3 --target-lufs -14 |
fileconverter-cli resize-presets |
Hazır boyut presetlerini listeler | fileconverter-cli resize-presets |
fileconverter-cli info <dosya> |
Dosya bilgisi gösterir (format, boyut, çözünürlük, codec) | fileconverter-cli info foto.jpg |
fileconverter-cli formats |
Desteklenen dönüşümleri listeler | fileconverter-cli formats --from pdf |
fileconverter-cli completion <shell> |
Shell completion üretir | fileconverter-cli completion zsh |
fileconverter-cli help [komut] |
Komut yardımı gösterir | fileconverter-cli help batch |
Flag Referansı
Global flag'ler
| Flag | Kısa | Açıklama |
|---|---|---|
--output |
-o |
Çıktı dizini (varsayılan: kaynak dosya dizini) |
--verbose |
-v |
Detaylı çıktı |
--workers |
-w |
Batch modunda paralel worker sayısı |
--output-format |
- | CLI çıktı formatı: text veya json |
--version |
- | Sürüm bilgisini gösterir |
convert flag'leri
| Flag | Kısa | Açıklama |
|---|---|---|
--to |
-t |
Hedef format (zorunlu) |
--profile |
- | Hazır profil: social-story, podcast-clean, archive-lossless |
--quality |
-q |
Kalite seviyesi (1-100) |
--name |
-n |
Çıktı dosya adı (uzantısız) |
--on-conflict |
- | Çakışma politikası: overwrite, skip, versioned |
--preserve-metadata |
- | Metadata bilgisini korumayı dener |
--strip-metadata |
- | Metadata bilgisini temizler |
--preset |
- | Hazır boyut (ör: story, square, fullhd, 1080x1920) |
--width |
- | Manuel genişlik değeri |
--height |
- | Manuel yükseklik değeri |
--unit |
- | Manuel birim (px veya cm) |
--dpi |
- | cm kullanıldığında DPI değeri |
--resize-mode |
- | Boyutlandırma modu: pad, fit, fill, stretch |
--optimize |
- | Dosya boyutunu minimize et (görsel dönüşümlerinde) |
--target-size |
- | Hedef dosya boyutu (ör: 500kb, 2mb) |
batch flag'leri
| Flag | Kısa | Açıklama |
|---|---|---|
--from |
-f |
Kaynak format (zorunlu) |
--to |
-t |
Hedef format (zorunlu) |
--profile |
- | Hazır profil: social-story, podcast-clean, archive-lossless |
--recursive |
-r |
Alt dizinleri de tara |
--preserve-tree |
- | Dizin modunda --output altına kaynak klasör yapısını korur |
--dry-run |
- | Dönüştürmeden önce planı göster |
--quality |
-q |
Kalite seviyesi (1-100) |
--on-conflict |
- | Çakışma politikası: overwrite, skip, versioned |
--preserve-metadata |
- | Metadata bilgisini korumayı dener |
--strip-metadata |
- | Metadata bilgisini temizler |
--retry |
- | Başarısız işler için otomatik tekrar sayısı |
--retry-delay |
- | Retry denemeleri arası bekleme (500ms, 2s vb.) |
--report |
- | Rapor formatı: off, txt, json |
--report-file |
- | Raporu belirtilen dosyaya yazar |
--resume-from-report |
- | Önceki JSON rapordaki success girdileri atlayarak devam eder |
--preset |
- | Hazır boyut (ör: story, square, fullhd, 1080x1920) |
--width |
- | Manuel genişlik değeri |
--height |
- | Manuel yükseklik değeri |
--unit |
- | Manuel birim (px veya cm) |
--dpi |
- | cm kullanıldığında DPI değeri |
--resize-mode |
- | Boyutlandırma modu: pad, fit, fill, stretch |
watch flag'leri
| Flag | Kısa | Açıklama |
|---|---|---|
--from |
-f |
Kaynak format (zorunlu) |
--to |
-t |
Hedef format (zorunlu) |
--profile |
- | Hazır profil: social-story, podcast-clean, archive-lossless |
--recursive |
-r |
Alt dizinleri de izle |
--quality |
-q |
Kalite seviyesi (1-100) |
--on-conflict |
- | Çakışma politikası: overwrite, skip, versioned |
--preserve-metadata |
- | Metadata bilgisini korumayı dener |
--strip-metadata |
- | Metadata bilgisini temizler |
--retry |
- | Başarısız işler için otomatik tekrar sayısı |
--retry-delay |
- | Retry denemeleri arası bekleme (500ms, 2s vb.) |
--interval |
- | Periyodik tarama aralığı (event modunda fallback/sağlık kontrolü) |
--settle |
- | Dosyanın stabil sayılması için bekleme süresi |
pipeline run flag'leri
| Flag | Kısa | Açıklama |
|---|---|---|
--profile |
- | Hazır profil: social-story, podcast-clean, archive-lossless |
--quality |
-q |
Varsayılan kalite seviyesi (1-100) |
--on-conflict |
- | Çakışma politikası: overwrite, skip, versioned |
--preserve-metadata |
- | Metadata bilgisini korumayı dener |
--strip-metadata |
- | Metadata bilgisini temizler |
--report |
- | Rapor formatı: off, txt, json |
--report-file |
- | Raporu belirtilen dosyaya yazar |
--resume-from-report |
- | Önceki JSON pipeline raporuna göre başarılı step'leri atlayıp devam eder |
--keep-temps |
- | Ara geçici dosyaları silmez |
video trim flag'leri
| Flag | Kısa | Açıklama |
|---|---|---|
--mode |
- | İşlem modu: clip veya remove |
--start |
- | İşlem başlangıç zamanı (örn: 00:00:05) |
--end |
- | Bitiş zamanı (--duration ile birlikte kullanılamaz) |
--duration |
- | İşlem süresi (örn: 10, 00:00:10) |
--ranges |
- | Sadece remove modunda çoklu aralık listesi (örn: 00:00:05-00:00:08,00:00:20-00:00:25) |
--dry-run |
- | İşlem yapmadan plan/etki ön izlemesi gösterir |
--preview |
- | --dry-run ile aynı davranış |
--codec |
- | auto (önerilen), copy, reencode |
--to |
- | Hedef format (mp4, mov vb.) |
--output-file |
- | Tam çıktı dosya yolu |
--name |
-n |
Çıktı dosya adı (uzantısız) |
--profile |
- | Hazır profil: social-story, podcast-clean, archive-lossless |
--quality |
-q |
Reencode modunda kalite seviyesi |
--on-conflict |
- | Çakışma politikası: overwrite, skip, versioned |
--preserve-metadata |
- | Metadata bilgisini korumayı dener |
--strip-metadata |
- | Metadata bilgisini temizler |
formats flag'leri
| Flag | Açıklama |
|---|---|
--from |
Belirli bir kaynaktan gidilebilen hedefleri listeler |
--to |
Belirli bir hedefe gelebilen kaynakları listeler |
Boyutlandırma modları
pad: Oranı korur, hedef boyutu doldurmak için siyah boşluk ekler (yatay -> dikey için önerilen).fit: Oranı korur, hedef kutuya sığdırır; çıktı bir kenarda daha küçük kalabilir.fill: Oranı korur, hedef kutuyu doldurur; taşan kısmı ortadan kırpar.stretch: Oranı korumaz, hedef ölçüye zorla esnetir.
Profiller
social-story: story formatı için hızlı preset (story,pad, orta-yüksek kalite).podcast-clean: ses akışlarında daha temiz ve güvenli varsayılanlar.archive-lossless: arşiv odaklı kalite/metadata koruma odaklı ayarlar.
Desteklenen Formatlar
En güncel ve tam matris için:
fileconverter-cli formats
Belgeler
- Kaynak/hedef:
md,html,pdf,docx,txt,odt,rtf,csv - Ek:
csv -> xlsx
Görseller
- Kaynak:
png,jpg/jpeg,webp,bmp,gif,tif/tiff,ico,svg,heic,heif - Hedef:
png,jpg/jpeg,webp,bmp,gif,tif/tiff,ico - Ek:
svg -> pdf
Ses (FFmpeg)
mp3,wav,ogg,flac,aac,m4a,wma,opus,webm
Videolar (FFmpeg)
- Kaynak:
mp4,mov,mkv,avi,webm,m4v,wmv,flv - Hedef: yukarıdakiler +
gif
Harici Bağımlılıklar
| Araç | Ne zaman gerekir | Not |
|---|---|---|
| FFmpeg | Ses ve video dönüşümleri | mp4 -> gif dahil |
| LibreOffice | Bazı belge dönüşümleri (odt/rtf/xlsx) |
Bazı dönüşümler için fallback kullanılır |
| Pandoc | Bazı Markdown belge akışları | Opsiyonel, fallback mevcut |
Uygulama interaktif modda eksik araçları kontrol eder ve kurulum için yönlendirir.
Yapılandırma
- Konfigürasyon dosyası:
~/.fileconverter/config.json - Bu dosyada ilk çalıştırma bilgisi ve varsayılan çıktı dizini tutulur.
- İnteraktif moddan varsayılan çıktı dizinini değiştirebilirsiniz.
Proje bazlı yapılandırma (.fileconverter.toml)
CLI, çalışma dizininden başlayıp üst dizinlere çıkarak .fileconverter.toml arar.
Hazır örnek için: .fileconverter.toml.example dosyasını kopyalayabilirsiniz.
Örnek:
default_output = "./output"
workers = 8
quality = 85
profile = "social-story"
on_conflict = "versioned"
metadata_mode = "strip"
retry = 2
retry_delay = "1s"
report_format = "json"
Öncelik sırası:
- CLI flag
- Environment variable
.fileconverter.toml- Uygulama varsayılanı
Desteklenen environment variable'lar:
FILECONVERTER_OUTPUTFILECONVERTER_WORKERSFILECONVERTER_QUALITYFILECONVERTER_PROFILEFILECONVERTER_ON_CONFLICTFILECONVERTER_METADATAFILECONVERTER_RETRYFILECONVERTER_RETRY_DELAYFILECONVERTER_REPORT
Sorun Giderme
command not found: fileconverter-cli
PATHiçine$(go env GOPATH)/binekleyin.- Terminali yeniden açın.
Eski sürüm/eskimiş help çıktısı görünüyor
cd /proje/dizini
go install .
which fileconverter-cli
fileconverter-cli --help
Dönüşüm desteklenmiyor hatası
Önce formatları doğrulayın:
fileconverter-cli formats --from <kaynak>
fileconverter-cli formats --to <hedef>
FFmpeg bulunamadı
macOS:
brew install ffmpeg
Linux (Debian/Ubuntu):
sudo apt install ffmpeg
Geliştirme
git clone https://github.com/mlihgenel/fileconverter-cli.git
cd fileconverter-cli
go test ./...
go run . --help
Proje Yapısı
fileconverter-cli/
├── cmd/ # Cobra komutları (convert, batch, watch, pipeline, formats, interactive)
├── internal/converter/ # Dönüştürme motorları (document, image, audio, video)
├── internal/batch/ # Worker pool ve batch yürütme
├── internal/pipeline/ # Çok adımlı pipeline yürütme
├── internal/watch/ # Klasör izleme altyapısı
├── internal/config/ # Uygulama ayarları
├── internal/installer/ # Bağımlılık kontrol/kurulum yardımcıları
├── internal/ui/ # Ortak terminal UI yardımcıları
├── assets/ # README görselleri
└── main.go # Uygulama giriş noktası
Katkı
Katkılar memnuniyetle karşılanır.
- Repo'yu fork edin.
- Yeni branch açın.
- Değişiklikleri yapın.
- Testleri çalıştırın.
- Pull request gönderin.
Issue ve öneriler için: GitHub Issues
Lisans
Bu proje MIT Lisansı ile lisanslanmıştır.
Documentation
¶
There is no documentation for this package.