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