public DownloadOperation(CopyCatScript script, string line) : base(script, line)
 {
     //download https://abc.com/some%20resource.txt "C:\Some\Path with space\resource.txt"
     string[] segments = Utility.SplitWithQuotations(line);
     Url       = segments[1];
     LocalFile = segments[2];
 }
Example #2
0
        public CopyOperation(CopyCatScript script, string line) : base(script, line)
        {
            string[] segments = Utility.SplitWithQuotations(line); //line.Trim().Split();
            //bool flipDirection = segments.Any(segment => segment.Equals("<="));
            bool flipDirection = false;

            if (segments.Length == 4)
            {
                Source        = segments[1];
                flipDirection = segments[2] == "<=";
                Destination   = segments[3];
            }
            else
            {
                Source      = segments[1];
                Destination = segments[2];
            }

            if (flipDirection)
            {
                string tmp = (string)Source.Clone();
                Source      = (string)Destination.Clone();
                Destination = tmp;
            }
        }
Example #3
0
        public ExecOperation(CopyCatScript script, string line) : base(script, line)
        {
            string[] segments = Utility.SplitWithQuotations(line);
            string   mode     = segments[0];

            ExecStr = Utility.ConcatenateFrom(segments, 1);
            Wait    = mode.Contains("wait", StringComparison.InvariantCultureIgnoreCase);
        }
Example #4
0
        public static void Main(string[] args)
        {
            ////Console.WriteLine(new ComputerInfo().OSVersion);
            //Utility.WaitKey("exit");
            //return;
            //Console.WriteLine(CopyCatScript.GetOS_Str());
            //Utility.WaitKey("exit");

            Utility.PrintEnclosed("CopyCat", '=', ConsoleColor.White);
            Utility.PrintAsciiCat();

            Dictionary <int, string> scripts = GetScripts();

            if (scripts.Count == 0)
            {
                Utility.WriteWarning("No scripts were available, exiting program...");
                if (Debugger.IsAttached)
                {
                    Utility.WaitKey("Exit");
                }
                return;
            }
            foreach (int key in scripts.Keys)
            {
                Console.WriteLine($"{key} - {Path.GetFileName(scripts[key])}");
            }
            Console.Write("Enter the name or number of a script: ");
            string userInput = Console.ReadLine();
            string script    = GetSelectedScript(scripts, userInput);

            if (script == null)
            {
                Utility.WriteError("Please enter a valid number or script name...");
            }
            else
            {
                var result = CopyCatScript.Execute(script);
                if (result > 0)
                {
                    Utility.WriteInfo($"Script finished successfully [{result}]");
                }
                else
                {
                    Utility.WriteError($"Script finished with one or more errors [{result}]");
                }
            }
            if (Debugger.IsAttached)
            {
                Utility.WaitKey("Exit", ConsoleColor.White);
            }
        }
Example #5
0
 public static BaseOperation InstantiateOperation(int lineNo, CopyCatScript script, string line)
 {
     foreach (Type childOperation in Assembly.GetAssembly(typeof(BaseOperation)).GetTypes()
              .Where(type => !type.IsAbstract))
     {
         MethodInfo?method = childOperation.GetMethod("CommandMatch");
         if (method != null)
         {
             if ((bool)method.Invoke(null, new[] { line }))
             {
                 try
                 {
                     return((BaseOperation)Activator.CreateInstance(childOperation, script, line));
                 }
                 catch
                 {
                     Utility.WriteError($"Failed to parse Ln{lineNo} - {line} // Invalid format for {childOperation.Name}");
                 }
             }
         }
     }
     return(null);
 }
Example #6
0
 protected BaseOperation(CopyCatScript script, string line)
 {
     Script = script;
     Raw    = line;
 }
Example #7
0
 public VariableOperation(CopyCatScript script, string line) : base(script, line)
 {
 }
Example #8
0
 public RestOperation(CopyCatScript script, string line) : base(script, line)
 {
     line        = line.TrimStart().Substring("rest".Length);
     RequestInfo = JsonConvert.DeserializeObject <RestRequest>(line);
 }
Example #9
0
 public ExitOperation(CopyCatScript script, string line) : base(script, line)
 {
 }