Git Product home page Git Product logo

backupgonow's People

Watchers

 avatar

backupgonow's Issues

output is verbose

After the output shown in Issue #12, the following appears:

LoadProfile...checking "/home/owner/.config/Backup GoNow/profiles/BackupGoNowDefault"...found...Reading "/home/owner/.config/Backup GoNow/profiles/BackupGoNowDefault/main.ini":
parsing line
showing line

parsing line
showing line

parsing line
showing line

parsing line
showing line

parsing line
showing line

parsing line
showing line

parsing line
showing line

parsing line
showing line

parsing line
showing line

parsing line
showing line

parsing line
showing line

parsing line
showing line

parsing line
showing line

Finished reading /home/owner/.config/Backup GoNow/profiles/BackupGoNowDefault/main.ini (commands processed)

Reading "/home/owner/.config/Backup GoNow/profiles/BackupGoNowDefault/main.ini"...OK
parsing line
updating drives list
continuing with new drive list {driveinfoarrAbsoluteDrives.Length:2}
/ (/) does not match invalid Windows8_OS (Windows8_OS)
/ (/) does not match invalid LENOVO (LENOVO)
/ (/) does not match invalid HP_RECOVERY (HP_RECOVERY)
/ (/) does not match invalid RECOVERY (RECOVERY)
/ (/) does not match invalid OS (OS)
/ (/) does not match invalid FACTORY_IMAGE (FACTORY_IMAGE)
/ (/) does not match invalid Recovery (Recovery)
/ (/) does not match invalid DELLUTILITY (DELLUTILITY)
/ (/) MATCHES invalid / (/)
continuing after creating new selectable drive list {driveinfoarrSelectableDrive.Length:2}
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid Windows8_OS (Windows8_OS)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid LENOVO (LENOVO)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid HP_RECOVERY (HP_RECOVERY)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid RECOVERY (RECOVERY)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid OS (OS)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid FACTORY_IMAGE (FACTORY_IMAGE)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid Recovery (Recovery)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid DELLUTILITY (DELLUTILITY)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid / (/)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid /sys (/sys/)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid /home (/home/)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid Windows8_OS (Windows8_OS)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid LENOVO (LENOVO)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid HP_RECOVERY (HP_RECOVERY)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid RECOVERY (RECOVERY)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid OS (OS)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid FACTORY_IMAGE (FACTORY_IMAGE)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid Recovery (Recovery)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid DELLUTILITY (DELLUTILITY)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid / (/)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid /sys (/sys/)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid /home (/home/)
skipping unusable destination {driveinfoarrAbsoluteDrives[iAbsolute].RootDirectory.FullName:"/"; driveinfoarrAbsoluteDrives[iAbsolute].VolumeLabel:"/"}
creating PseudoRoot array
creating PseudoRoot array {NewSize:9}
trying to add entry to PseudoRoots array without resize
finished AddFolderToPseudoRoots
finished adding destination {driveinfoarrAbsoluteDrives[iAbsolute].RootDirectory.FullName:{"/run/user/1000/gvfs"}
getting drive info for system with nix pathing
appending ExtraPseudoRootsToManuallyAdd
{
 PseudoRoot entry count:1;
 PseudoRoot non-null entries:1;
 PseudoRoot non-null entries including entries past end:1;
 PseudoRoot Array.Length:9;
 Selectable Drive Array.Length:2;
 Selectable Drive entries:1;
 Selectable Drive non-null entries:1;
 Selectable Drive non-null entries including entries past end:1;
 Invalid Destinations ArrayList:
   {   
   "Windows8_OS"   
   "LENOVO"   
   "HP_RECOVERY"   
   "RECOVERY"   
   "OS"   
   "FACTORY_IMAGE"   
   "Recovery"   
   "DELLUTILITY"   
   "/"   
   "/sys"   
   "/home"   
   }
}
finished updating Drives and PseudoRoots
getting usable drives
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid Windows8_OS (Windows8_OS)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid LENOVO (LENOVO)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid HP_RECOVERY (HP_RECOVERY)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid RECOVERY (RECOVERY)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid OS (OS)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid FACTORY_IMAGE (FACTORY_IMAGE)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid Recovery (Recovery)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid DELLUTILITY (DELLUTILITY)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid / (/)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid /sys (/sys/)
/run/user/1000/gvfs (/run/user/1000/gvfs/) does not match invalid /home (/home/)
/run/user/1000/gvfs/ (/run/user/1000/gvfs/) does not match invalid Windows8_OS (Windows8_OS)
/run/user/1000/gvfs/ (/run/user/1000/gvfs/) does not match invalid LENOVO (LENOVO)
/run/user/1000/gvfs/ (/run/user/1000/gvfs/) does not match invalid HP_RECOVERY (HP_RECOVERY)
/run/user/1000/gvfs/ (/run/user/1000/gvfs/) does not match invalid RECOVERY (RECOVERY)
/run/user/1000/gvfs/ (/run/user/1000/gvfs/) does not match invalid OS (OS)
/run/user/1000/gvfs/ (/run/user/1000/gvfs/) does not match invalid FACTORY_IMAGE (FACTORY_IMAGE)
/run/user/1000/gvfs/ (/run/user/1000/gvfs/) does not match invalid Recovery (Recovery)
/run/user/1000/gvfs/ (/run/user/1000/gvfs/) does not match invalid DELLUTILITY (DELLUTILITY)
/run/user/1000/gvfs/ (/run/user/1000/gvfs/) does not match invalid / (/)
/run/user/1000/gvfs/ (/run/user/1000/gvfs/) does not match invalid /sys (/sys/)
/run/user/1000/gvfs/ (/run/user/1000/gvfs/) does not match invalid /home (/home/)
/run/user/1000/gvfs is not writable
No usable backup drives can be found.  Try connecting the drive and then try reopening this program.
{
 PseudoRoot entry count:1;
 PseudoRoot non-null entries:1;
 PseudoRoot non-null entries including entries past end:1;
 PseudoRoot Array.Length:9;
 Selectable Drive Array.Length:2;
 Selectable Drive entries:1;
 Selectable Drive non-null entries:1;
 Selectable Drive non-null entries including entries past end:1;
 Invalid Destinations ArrayList:
   {   
   "Windows8_OS"   
   "LENOVO"   
   "HP_RECOVERY"   
   "RECOVERY"   
   "OS"   
   "FACTORY_IMAGE"   
   "Recovery"   
   "DELLUTILITY"   
   "/"   
   "/sys"   
   "/home"   
   }
}
showing usable drives
rewriting main.ini
continuing after rewriting /home/owner/.config/Backup GoNow/profiles/Inspiron-1564/main.ini
rewriting script.txt
continuing after rewriting /home/owner/.config/Backup GoNow/profiles/Inspiron-1564/script.txt
saving options (from SaveOptions)
locking "/home/owner/.config/Backup GoNow/profiles/Inspiron-1564/script.txt"
changing startup file path to use machine profile
saving startup file
continuing after SaveOptions
Loaded Profile "BackupGoNowDefault"...OK
Attempting to edit "startup.ini" and add "LoadProFile:BackupGoNowDefault" if no valid LoadProfile statement is found...reading data...writing data...OK.


ReconstructedSourcePath should be dependent upon "Full Path" checkbox, but account for the difference in state across sessions

  • ReconstructedSourcePath needs an enableRecreateFullPath param
  • If state of ReconstructedSourcePath's enableRecreateFullPath param (based on "Full Path" checkbox) differs from ReconstructedBackupPath's identical boolean's state when backup was created, ReconstructedSourcePath's return is not the same as the actual source that was used during that backup.
  • If above point is settled, the issue shouldn't matter, but the following is needed to ensure that the function is not used across sessions (where session is a string of backup operations that involve a single value for enableRecreateFullPath):
    • audit of all uses
    • summary comment to note the proper usage (do not use across sessions)

linux build script yields exe with inaccessible embedded resources

:~/git/BackupGoNow$ mono /home/joy/git/BackupGoNow/bin/BackupGoNow.exe
\
Unhandled Exception:
System.Resources.MissingManifestResourceException: Could not find any resources appropriate for the specified culture or the neutral culture.  Make sure "ExpertMultimedia.MainForm.resources" was correctly embedded or linked into assembly "BackupGoNow" at compile time, or that all the satellite assemblies required are loadable and fully signed.
  at System.Resources.ManifestBasedResourceGroveler.HandleResourceStreamMissing (System.String fileName) [0x000cf] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet (System.Globalization.CultureInfo culture, System.Collections.Generic.Dictionary`2[TKey,TValue] localResourceSets, System.Boolean tryParents, System.Boolean createIfNotExists, System.Threading.StackCrawlMark& stackMark) [0x00110] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Resources.ResourceManager.InternalGetResourceSet (System.Globalization.CultureInfo requestedCulture, System.Boolean createIfNotExists, System.Boolean tryParents, System.Threading.StackCrawlMark& stackMark) [0x000ad] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Resources.ResourceManager.InternalGetResourceSet (System.Globalization.CultureInfo culture, System.Boolean createIfNotExists, System.Boolean tryParents) [0x00002] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Resources.ResourceManager.GetObject (System.String name, System.Globalization.CultureInfo culture, System.Boolean wrapUnmanagedMemStream) [0x00085] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Resources.ResourceManager.GetObject (System.String name) [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 
  at ExpertMultimedia.MainForm.InitializeComponent () [0x0162b] in <c58294f5ac37404fac87f887738229bb>:0 
  at ExpertMultimedia.MainForm..ctor () [0x00150] in <c58294f5ac37404fac87f887738229bb>:0 
  at (wrapper remoting-invoke-with-check) ExpertMultimedia.MainForm:.ctor ()
  at ExpertMultimedia.Program.Main (System.String[] args) [0x0000b] in <c58294f5ac37404fac87f887738229bb>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.Resources.MissingManifestResourceException: Could not find any resources appropriate for the specified culture or the neutral culture.  Make sure "ExpertMultimedia.MainForm.resources" was correctly embedded or linked into assembly "BackupGoNow" at compile time, or that all the satellite assemblies required are loadable and fully signed.
  at System.Resources.ManifestBasedResourceGroveler.HandleResourceStreamMissing (System.String fileName) [0x000cf] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet (System.Globalization.CultureInfo culture, System.Collections.Generic.Dictionary`2[TKey,TValue] localResourceSets, System.Boolean tryParents, System.Boolean createIfNotExists, System.Threading.StackCrawlMark& stackMark) [0x00110] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Resources.ResourceManager.InternalGetResourceSet (System.Globalization.CultureInfo requestedCulture, System.Boolean createIfNotExists, System.Boolean tryParents, System.Threading.StackCrawlMark& stackMark) [0x000ad] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Resources.ResourceManager.InternalGetResourceSet (System.Globalization.CultureInfo culture, System.Boolean createIfNotExists, System.Boolean tryParents) [0x00002] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Resources.ResourceManager.GetObject (System.String name, System.Globalization.CultureInfo culture, System.Boolean wrapUnmanagedMemStream) [0x00085] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Resources.ResourceManager.GetObject (System.String name) [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 
  at ExpertMultimedia.MainForm.InitializeComponent () [0x0162b] in <c58294f5ac37404fac87f887738229bb>:0 
  at ExpertMultimedia.MainForm..ctor () [0x00150] in <c58294f5ac37404fac87f887738229bb>:0 
  at (wrapper remoting-invoke-with-check) ExpertMultimedia.MainForm:.ctor ()
  at ExpertMultimedia.Program.Main (System.String[] args) [0x0000b] in <c58294f5ac37404fac87f887738229bb>:0 
joy@PresarioC700:~/git/BackupGoNow$ \

Add option to turn off "recreate full path on backup"

Related to:

  • ReconstructedBackupPath and ReconstructPathOnBackup methods--each takes source directory as param, which can be diSrc.FullName or fiSrc.DirectoryName (also a full path)
  • BackupFile (already accepts bUseReconstructedPath) and BackupFolder methods

Automatically avoid cumulative backups of transient data

Always dump old copies of:

  • directories under AppData\Local\Google\Chrome\User Data\Default\Extensions
    (has long random strings as directories under it, one for each extension)
  • directories under AppData\Local\Google\Chrome\User Data\Default\File System

Add exceptions to file modification date such as for VeraCrypt (and deprecated TrueCrypt) drives

VeraCrypt and TrueCrypt do not change the file modification date after mounting, modifying files or directories on the mounted drive, or unmounting. Therefore, Backup GoNow does not detect a change and does not back up the changed drive.

  • check for whether it is mounted if possible
  • add a list of file extensions (case insensitive) for which to ignore the file modification date
  • move to a special directory on the backup drive
  • only keep a 1st, bak, and current version (3 versions max) to save space

Imperative Instructions with Drive Name

  • program labels drive after you choose it
  • "Make sure that the flash drive labeled BACKUP is inserted then press "Go"
  • Using Environment.[home folder]/7za, make it a cross-platform batch file generator (run batch then delete)
    • add to the file incrementally by moving it to the next folder
  • Make it backup to drive labeled BACKUP

Exception on first run when ini is not present (should generate it first?)

BackupGoNow.exe: started at 8/9/2019 6:29:14 PM.

Running startupTimer
Timed startup is about to open "/home/owner/.config/Backup GoNow/startup.ini"
File does not exist: "/home/owner/.config/Backup GoNow/startup.ini"!


Could not finish running "/home/owner/.config/Backup GoNow/startup.ini": in RunScript
Could not finish running "/home/owner/.config/Backup GoNow/startup.ini": in RunScript
System.IO.FileNotFoundException: Could not find file "/home/owner/.config/Backup GoNow/startup.ini".
File name: '/home/owner/.config/Backup GoNow/startup.ini'
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) [0x0021a] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.IO.FileOptions options, System.String msgPath, System.Boolean bFromProxy, System.Boolean useLongPath, System.Boolean checkHost) [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 
  at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,int,System.IO.FileOptions,string,bool,bool,bool)
  at System.IO.StreamReader..ctor (System.String path, System.Text.Encoding encoding, System.Boolean detectEncodingFromByteOrderMarks, System.Int32 bufferSize, System.Boolean checkHost) [0x00079] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.IO.StreamReader..ctor (System.String path, System.Text.Encoding encoding, System.Boolean detectEncodingFromByteOrderMarks, System.Int32 bufferSize) [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.IO.StreamReader..ctor (System.String path, System.Boolean detectEncodingFromByteOrderMarks) [0x0000d] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.IO.StreamReader..ctor (System.String path) [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 
  at (wrapper remoting-invoke-with-check) System.IO.StreamReader:.ctor (string)
  at ExpertMultimedia.MainForm.RunScript (System.String sFileX, System.Boolean enableRecreateFullPath) [0x000e6] in <1323784825ed4ea1a367f3cf00e86c7d>:0 
Finished "startup.ini" in MainFormLoad
"startup.ini" did not load a profile so loading default ("BackupGoNowDefault")


  • There is also a "Profile" not found error in the GUI.

Implement "Remember my answer." for retroactive backup.

Implement similarly to the unmovable (can't move to retroactive backup code) which is:

								string ask = "This file:\n "+fiDest.FullName+"\n could not be moved to retroactive file \n"+fiDest_Retroactive_FullName+"\n Do you want to keep it anyway (Yes is recommended)?";
								DialogResult thisDR = this.retroactiveUnmovableAnswer ? DialogResult.Yes : DialogResult.No;
								if (this.retroactiveUnmovableAnswerIsStored) {
									// DialogResult thisDR=MessageBox.Show(ask, "Backup GoNow", MessageBoxButtons.YesNo);
									RetroactiveAskForm askForm = new RetroactiveAskForm();
									askForm.TopLevel = true;
									// askForm.Parent = this;
									// DialogResult thisDR = askForm.ShowDialog(this);
									thisDR = askForm.ShowDialog(this, ask);
									askForm.BringToFront();
									this.retroactiveUnmovableAnswerIsStored = askForm.remember;
								}
								if (thisDR == DialogResult.No) {
									this.retroactiveUnmovableAnswer = false;
									fiDest.Delete();
								}
								else if (thisDR == DialogResult.Yes) {
									this.retroactiveUnmovableAnswer = true;
								}
  • except with retroactiveAnswerIsStored and retroactiveAnswer instead
  • separate folder and file answers?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.