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