hfmrow / search-engine

Linux software. Search files over directory, subdirectory, and retrieving information based on date/time, type, patterns contained in name.

Home Page:https://hfmrow.github.io/search-engine/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Search Engine 1.9

This program is designed to search files over directory, subdirectory, and retrieving information based on date/time, type, patterns contained in name. i'm using it as a replacement for native search function.

Last update 2021-04-02

Take a look here, H.F.M repositories for other useful linux softwares.

  • If you just want to use it, simply download the .deb version under the Releases tab.

  • If you want to play inside code, see below "How to compile" section.

How it's made

  • Programmed with go language: golang
  • GUI provided by Gotk3 (gtk3 v3.22), GUI library for Go (minimum required v3.16).
  • I use homemade software: "Gotk3ObjHandler" to embed images/icons, UI-information and manage/generate gtk3 objects code from glade ui designer. and "Gotk3ObjTranslate" to generate the language files and the assignment of a tooltip on the gtk3 objects (both are not published at the moment, in fact, they need documentations and, for the moment, I have not had the time to do them).

Functionalities

  • Search files based on patterns (contained in filename).
  • Search files based on file type (all, files, dir, link).
  • Search files based on date time (newer than, older than).
  • Wildcard, regex, case sensitive, character classes can be used.
  • Date/time display can be in human readable or classic format.
  • Modification or last access date time display selection.
  • And, or, not as logical operators may be used.
  • Whole word functionality.
  • Patterns can be splitted (at space char) to add multiples searches for each logical operator.
  • Directory depth can be defined.
  • Follow symlink directory option.
  • History of previous pettern are recorded and can be erased as you wish
  • Context menu to open file, open internet browser, open directory, copy path, delete selection(s).
  • Column sort available.
  • Export function is available to save the results list in txt format.
  • Each function have his tooltip for explanations.

Some pictures

This is the main screen.
Main

How to compile

  • Be sure you have golang installed in right way. Go installation.

  • Open terminal window and at command prompt, type: go get github.com/hfmrow/search-engine

  • See Gotk3 Installation instructions for gui installation instruction.

  • To change gtk3 interface you need to use the devMode = true to disable embedding assets. see below ...

  • To change language file you need to use another home made software, (not published actually). So don't change language file ...

  • To Produce a stand-alone executable, you must change inside "main.go" file:

      func main() {
          devMode = true
      ...

    into

      func main() {
          devMode = false
      ...

This operation indicate that externals data (Image/Icons) must be embedded into the executable file.

Os information (build using)

Name Version / Info / Name
GOLANG V1.16.2 -> GO111MODULE="off", GOPROXY="direct"
DISTRIB LinuxMint Xfce
VERSION 20
CODENAME ulyana
RELEASE #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020
UBUNTU_CODENAME focal
KERNEL 5.8.0-48-generic
HDWPLATFORM x86_64
GTK+ 3 3.24.20
GLIB 2 2.64.3
CAIRO 1.16.0
GtkSourceView 4.6.0
LiteIDE 37.4 qt5.x
Qt5 5.12.8 in /usr/lib/x86_64-linux-gnu
  • The compilation have not been tested under Windows or Mac OS, but all file access functions, line-end manipulations or charset implementation are made with OS portability in mind.

You got an issue ?

  • Give information (as above), about used platform and OS version.
  • Provide a method to reproduce the problem.

Website

About

Linux software. Search files over directory, subdirectory, and retrieving information based on date/time, type, patterns contained in name.

https://hfmrow.github.io/search-engine/

License:MIT License


Languages

Language:Go 100.0%