RPMSpec · 6936 bytes Raw Blame History
1 Name: fortress
2 Version: 0.9.94
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 * Mon Oct 27 2025 mfw <espadon@outlook.com> - 0.9.94-1
107 - Change cursor selection approach for consistent cross-platform experience
108 - Move away from reverse video highlighting to fix macOS inconsistencies
109
110 * Mon Oct 27 2025 mfw <espadon@outlook.com> - 0.9.93-1
111 - Fix shell integration to find fortress-bin in PATH
112 - Improves Homebrew compatibility on macOS
113
114 * Mon Oct 27 2025 mfw <espadon@outlook.com> - 0.9.92-1
115 - Add favorites functionality with * and 8 keybinds
116 - Add jump to ~ and / with keybinds
117 - Fix display alignment issues with pipes
118
119 * Sun Oct 26 2025 mfw <espadon@outlook.com> - 0.9.91-1
120 - Fix runtime errors on switching terminal modes
121 - Improve terminal mode handling
122
123 * Sat Oct 25 2025 mfw <espadon@outlook.com> - 0.9.9-1
124 - Fix hashes appearing in copy status for multi-select operations
125 - UI improvements for multi-select mode
126
127 * Sat Oct 25 2025 mfw <espadon@outlook.com> - 0.9.8-1
128 - Add multi-select with space key
129 - Add shift+arrow for range selection
130 - Prevent selection of . and .. entries
131 - Major code cleanup (removed lib_modules directory)
132
133 * Sat Oct 19 2025 mfw <espadon@outlook.com> - 0.9.5-1
134 - Add 'r' key to remove files
135 - Add copy, cut, paste functionality
136 - Recursive move for directories
137 - Stage directories with move mode
138 - Exit move mode with 'q'
139 - Smart duplicate suffix on paste
140 - Fix suffix concatenation
141
142 * Fri Oct 18 2025 mfw <espadon@outlook.com> - 0.9.2-1
143 - Add 'n' key to rename files
144 - Add '.' key to toggle dotfiles visibility
145 - Add 'v' key to start move mode
146 - Add git fetch/pull with incoming change indicators
147 - Show dirty indicator on directories
148 - Fix buffer issues in move mode
149 - Various move behavior improvements
150
151 * Fri Oct 18 2025 mfw <espadon@outlook.com> - 0.9.0-1
152 - Cache git operations for better performance
153 - Optimize file attribute checking
154 - Fix directory entry navigation on arrow keys
155 - Work in progress: diff keybinding
156
157 * Fri Oct 18 2025 mfw <espadon@outlook.com> - 0.8.0-1
158 - Add 'o' key to open files with $EDITOR
159 - Platform-dependent features
160 - Enhanced file operations
161
162 * Fri Oct 18 2025 mfw <espadon@outlook.com> - 0.7.0-1
163 - Add git push functionality
164 - Add git tag creation and management
165 - Enhanced git operations
166
167 * Fri Oct 18 2025 mfw <espadon@outlook.com> - 0.6.0-1
168 - Add src/ui/preview.f90 module
169 - Code cleanup and documentation improvements
170
171 * Fri Oct 18 2025 mfw <espadon@outlook.com> - 0.5.0-1
172 - Major refactor: modularize codebase into src/ directory
173 - Add branch info to git status bar
174 - Make git integration reactive
175 - Improved code organization and maintainability
176
177 * Fri Oct 18 2025 mfw <espadon@outlook.com> - 0.4.0-2
178 - Add git as runtime dependency for git integration features
179
180 * Fri Oct 18 2025 mfw <espadon@outlook.com> - 0.4.0-1
181 - Add git integration features with status display
182 - Add 'U' key to unstage staged files in listing
183 - Fix terminal size handling issues
184 - Various bug fixes and improvements
185
186 * Fri Oct 18 2025 mfw <espadon@outlook.com> - 0.2.0-1
187 - Add fzf integration for fuzzy file search
188 - Fix cursor clamping to prevent disappearing on ..
189 - Fix cd-on-exit regression
190 - Various cursor fixes and improvements
191 - Add fzf as runtime dependency
192
193 * Fri Oct 18 2025 mfw <espadon@outlook.com> - 0.1.0-1
194 - Initial RPM release
195 - Dual-pane file explorer with Fortran implementation
196 - CD-on-exit functionality with shell integration
197 - Color-coded file display with visual hierarchy
198 - Smart selection memory and arrow key navigation
199 - Automatic shell integration for bash and fish
200 - Manual setup required for zsh
201