RPMSpec · 7490 bytes Raw Blame History
1 %global debug_package %{nil}
2
3 Name: fortress
4 Version: 1.0.1
5 Release: 1%{?dist}
6 Summary: A command-line file explorer written in modern Fortran with cd-on-exit
7
8 License: MIT
9 URL: https://github.com/FortranGoingOnForty/fortress
10 Source0: %{name}-%{version}.tar.gz
11
12 BuildRequires: gfortran >= 10.0
13 BuildRequires: gcc
14 BuildRequires: fpm
15 Requires: glibc
16 Requires: gcc-libs
17 Requires: fzf
18 Requires: git
19
20 %description
21 FORTRESS is a command-line file explorer written in modern Fortran with fzf integration.
22 It provides a dual-pane interface inspired by Ranger/Midnight Commander with intuitive
23 keyboard navigation and a unique cd-on-exit feature that allows you to navigate your
24 shell to any directory you select in the explorer.
25
26 Features:
27 - Dual-pane display (parent dir 30%% | current dir 70%%)
28 - Real filesystem navigation with directory reading
29 - Smart selection memory - remembers position when navigating
30 - Visual hierarchy with dimmed parent pane and active current pane
31 - Color-coded files (directories, executables, dotfiles, regular files)
32 - Smooth updates with no flashing, selective redraws
33 - Arrow key navigation for intuitive movement
34 - Full-width selection bar with clean highlighting
35 - CD on exit - press 'c' to navigate your shell to selected directory
36
37 %prep
38 %autosetup
39
40 %build
41 fpm build --flag "-O2 -ffree-line-length-none"
42
43 %install
44 mkdir -p %{buildroot}%{_bindir}
45 mkdir -p %{buildroot}%{_datadir}/%{name}
46 mkdir -p %{buildroot}%{_datadir}/fish/vendor_functions.d
47 mkdir -p %{buildroot}%{_sysconfdir}/profile.d
48 mkdir -p %{buildroot}%{_docdir}/%{name}
49
50 # Install the binary
51 install -Dm755 build/gfortran_*/app/fortress %{buildroot}%{_bindir}/fortress-bin
52
53 # Install shell integration files to shared location
54 install -Dm644 fortress.sh %{buildroot}%{_datadir}/%{name}/fortress.sh
55 install -Dm644 fortress.fish %{buildroot}%{_datadir}/%{name}/fortress.fish
56
57 # Install bash integration to profile.d (auto-sourced on login)
58 install -Dm644 fortress.sh %{buildroot}%{_sysconfdir}/profile.d/fortress.sh
59
60 # Install fish integration to vendor functions (auto-loaded)
61 install -Dm644 fortress.fish %{buildroot}%{_datadir}/fish/vendor_functions.d/fortress.fish
62
63 # Install documentation
64 install -Dm644 README.md %{buildroot}%{_docdir}/%{name}/README.md
65 if [ -f USAGE.md ]; then
66 install -Dm644 USAGE.md %{buildroot}%{_docdir}/%{name}/USAGE.md
67 fi
68
69 %files
70 %license LICENSE
71 %doc README.md
72 %{_bindir}/fortress-bin
73 %{_datadir}/%{name}/fortress.sh
74 %{_datadir}/%{name}/fortress.fish
75 %config(noreplace) %{_sysconfdir}/profile.d/fortress.sh
76 %{_datadir}/fish/vendor_functions.d/fortress.fish
77 %{_docdir}/%{name}/README.md
78
79 %post
80 cat <<'EOF'
81
82 ====================================================================
83 FORTRESS - Terminal File Explorer
84 ====================================================================
85
86 The 'fortress' command is now available!
87
88 Shell integration (cd-on-exit) has been installed:
89 Bash: Auto-loaded via /etc/profile.d/fortress.sh
90 Fish: Auto-loaded via vendor_functions.d
91 Zsh: Add to ~/.zshrc:
92 source %{_datadir}/%{name}/fortress.sh
93
94 You may need to restart your shell or run:
95 source /etc/profile.d/fortress.sh # bash
96
97 Usage:
98 fortress - Start the file explorer
99 Press 'c' on a directory to cd there and exit
100
101 Documentation: %{_docdir}/%{name}/
102
103 ====================================================================
104
105 EOF
106
107 %changelog
108 * Fri Dec 05 2025 mfw <espadon@outlook.com> - 1.0.0-1
109 - Fix top status bar not rendering on some terminals
110 - Merge favorites: fuzzy jump, rename mode, git mode toggle, Alt-key bindings
111
112 * Wed Oct 29 2025 mfw <espadon@outlook.com> - 0.9.99-1
113 - Add conditional rows for WezTerm and Ghostty terminals
114 - Fix alignment of pipes on favorited directories
115
116 * Wed Oct 29 2025 mfw <espadon@outlook.com> - 0.9.98-1
117 - Merge favorites branch into trunk
118 - Ensures all features (favorites, jump binds) are in trunk
119
120 * Mon Oct 27 2025 mfw <espadon@outlook.com> - 0.9.94-1
121 - Change cursor selection approach for consistent cross-platform experience
122 - Move away from reverse video highlighting to fix macOS inconsistencies
123
124 * Mon Oct 27 2025 mfw <espadon@outlook.com> - 0.9.93-1
125 - Fix shell integration to find fortress-bin in PATH
126 - Improves Homebrew compatibility on macOS
127
128 * Mon Oct 27 2025 mfw <espadon@outlook.com> - 0.9.92-1
129 - Add favorites functionality with * and 8 keybinds
130 - Add jump to ~ and / with keybinds
131 - Fix display alignment issues with pipes
132
133 * Sun Oct 26 2025 mfw <espadon@outlook.com> - 0.9.91-1
134 - Fix runtime errors on switching terminal modes
135 - Improve terminal mode handling
136
137 * Sat Oct 25 2025 mfw <espadon@outlook.com> - 0.9.9-1
138 - Fix hashes appearing in copy status for multi-select operations
139 - UI improvements for multi-select mode
140
141 * Sat Oct 25 2025 mfw <espadon@outlook.com> - 0.9.8-1
142 - Add multi-select with space key
143 - Add shift+arrow for range selection
144 - Prevent selection of . and .. entries
145 - Major code cleanup (removed lib_modules directory)
146
147 * Sat Oct 19 2025 mfw <espadon@outlook.com> - 0.9.5-1
148 - Add 'r' key to remove files
149 - Add copy, cut, paste functionality
150 - Recursive move for directories
151 - Stage directories with move mode
152 - Exit move mode with 'q'
153 - Smart duplicate suffix on paste
154 - Fix suffix concatenation
155
156 * Fri Oct 18 2025 mfw <espadon@outlook.com> - 0.9.2-1
157 - Add 'n' key to rename files
158 - Add '.' key to toggle dotfiles visibility
159 - Add 'v' key to start move mode
160 - Add git fetch/pull with incoming change indicators
161 - Show dirty indicator on directories
162 - Fix buffer issues in move mode
163 - Various move behavior improvements
164
165 * Fri Oct 18 2025 mfw <espadon@outlook.com> - 0.9.0-1
166 - Cache git operations for better performance
167 - Optimize file attribute checking
168 - Fix directory entry navigation on arrow keys
169 - Work in progress: diff keybinding
170
171 * Fri Oct 18 2025 mfw <espadon@outlook.com> - 0.8.0-1
172 - Add 'o' key to open files with $EDITOR
173 - Platform-dependent features
174 - Enhanced file operations
175
176 * Fri Oct 18 2025 mfw <espadon@outlook.com> - 0.7.0-1
177 - Add git push functionality
178 - Add git tag creation and management
179 - Enhanced git operations
180
181 * Fri Oct 18 2025 mfw <espadon@outlook.com> - 0.6.0-1
182 - Add src/ui/preview.f90 module
183 - Code cleanup and documentation improvements
184
185 * Fri Oct 18 2025 mfw <espadon@outlook.com> - 0.5.0-1
186 - Major refactor: modularize codebase into src/ directory
187 - Add branch info to git status bar
188 - Make git integration reactive
189 - Improved code organization and maintainability
190
191 * Fri Oct 18 2025 mfw <espadon@outlook.com> - 0.4.0-2
192 - Add git as runtime dependency for git integration features
193
194 * Fri Oct 18 2025 mfw <espadon@outlook.com> - 0.4.0-1
195 - Add git integration features with status display
196 - Add 'U' key to unstage staged files in listing
197 - Fix terminal size handling issues
198 - Various bug fixes and improvements
199
200 * Fri Oct 18 2025 mfw <espadon@outlook.com> - 0.2.0-1
201 - Add fzf integration for fuzzy file search
202 - Fix cursor clamping to prevent disappearing on ..
203 - Fix cd-on-exit regression
204 - Various cursor fixes and improvements
205 - Add fzf as runtime dependency
206
207 * Fri Oct 18 2025 mfw <espadon@outlook.com> - 0.1.0-1
208 - Initial RPM release
209 - Dual-pane file explorer with Fortran implementation
210 - CD-on-exit functionality with shell integration
211 - Color-coded file display with visual hierarchy
212 - Smart selection memory and arrow key navigation
213 - Automatic shell integration for bash and fish
214 - Manual setup required for zsh
215