aboutsummaryrefslogtreecommitdiff
path: root/source/WindowsFormsApplication1/HostLayer/Paths.cs
blob: 64672e6ef0717219251b64652d3836aa47f308f8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
using System;
using System.IO;
using ShiftUI;

namespace ShiftOS
{
    /// <summary>
    /// ShiftOS Path Variables.
    /// 
    /// This class is cross-platform enabled, and will adapt to the currently running OS.
    /// </summary>
	public class Paths
	{
		public OSInfo oi = new OSInfo();

		public static string SaveRoot;
			public static string Home;
				public static string Desktop;
				public static string Documents;
				public static string Music;
				public static string Pictures;
				public static string Skins;
				public static string Videos;
			public static string SystemDir;
                public static string AutoStart;
                public static string APIs;
				public static string SkinDir;
					public static string LoadedSkin;
                        public static string Icons;
					public static string ToBeLoaded;
				public static string Drivers;
					public static string SaveFile;
                    public static string Bitnote;
                public static string Applications;
                    public static string PackageManager;
                    public static string Shiftnet;
            public static string SoftwareData;
                public static string KnowledgeInput;
	
        //Mod Directories
        public static string Mod_Temp;
        public static string Mod_AppLauncherEntries;
        public static string Desktop_Icons;
        public static string WidgetFiles;

        /// <summary>
        /// Registers path variables.
        /// </summary>
		public static void RegisterPaths()
		{
			switch (OSInfo.GetPlatformID()) {
			case "microsoft":
                    var windir = Environment.GetFolderPath(Environment.SpecialFolder.Windows);
                    var splitter = windir.Split('\\');
                    var driveletter = splitter[0];
                    SaveRoot = $"{driveletter}\\ShiftOS";
				Home = SaveRoot + "\\Home\\";
				Desktop = Home + "Desktop\\";
				Documents = Home + "Documents\\";
				Music = Home + "Music\\";
				Pictures = Home + "Pictures\\";
				Skins = Home + "Skins\\";
				Videos = Home + "Videos\\";
				SystemDir = SaveRoot + "\\Shiftum42\\";
				SkinDir = SystemDir + "SkinData\\";
				LoadedSkin = SkinDir + "Loaded\\";
				ToBeLoaded = SkinDir + "Preview\\";
				Drivers = SystemDir + "Drivers\\";
				SaveFile = Drivers + "HDD.dri";
                    SoftwareData = SaveRoot + "\\SoftwareData";
                    KnowledgeInput = SoftwareData + "\\_knowledgeinput\\";
                    Applications = SystemDir + "Apps\\";
                    PackageManager = Applications + "Package Manager\\";
                    Shiftnet = Applications + "Shiftnet\\";
                    Mod_AppLauncherEntries = SystemDir + "_applauncher\\";
                    Mod_Temp = SystemDir + "_temp\\";
                    AutoStart = SystemDir + "AutoStart\\";
                    Bitnote = Drivers + "BNWallet.dri";
                    Icons = LoadedSkin + "Icons\\";
                    WidgetFiles = SystemDir + "Widgets\\";
                    APIs = SystemDir + "APIs\\";
				break;
			default:
				SaveRoot = OSInfo.homePath () + "/.local/lib/.shiftos";
				Home = SaveRoot + "/Home/";
				Desktop = Home + "Desktop/";
				Documents = Home + "Documents/";
				Music = Home + "Music/";
				Pictures = Home + "Pictures/";
				Skins = Home + "Skins/";
				Videos = Home + "Videos/";
				SystemDir = SaveRoot + "/Shiftum42/";
				SkinDir = SystemDir + "SkinData/";
				LoadedSkin = SkinDir + "Loaded/";
				ToBeLoaded = SkinDir + "Preview/";
				Drivers = SystemDir + "Drivers/";
				SaveFile = Drivers + "HDD.dri";
                    SoftwareData = SaveRoot + "/SoftwareData";
                    KnowledgeInput = SoftwareData + "/_knowledgeinput/";
                    Applications = SystemDir + "/Apps/";
                    PackageManager = Applications + "Package Manager/";
                    Shiftnet = Applications + "Shiftnet/";
                    Mod_AppLauncherEntries = SystemDir + "_applauncher/";
                    Mod_Temp = SystemDir + "_temp/";
                    AutoStart = SystemDir + "AutoStart/";
                    Bitnote = Drivers + "BNWallet.dri";
                    Icons = LoadedSkin + "Icons/";
                    WidgetFiles = SystemDir + "Widgets/";
                    APIs = SystemDir + "APIs/";
                    break;
			}

		}

		/// <summary>
		/// Writes the barebones ShiftOS file system; skipping folders like the Desktop, which will appear as the user upgrades the OS.
		/// </summary>
		public static void WriteFileSystem() {
			WriteDirectory (SaveRoot);
			WriteDirectory (Home);
			WriteDirectory (Documents);
			WriteDirectory (SystemDir);
			WriteDirectory (SkinDir);
			WriteDirectory (LoadedSkin);
			WriteDirectory (ToBeLoaded);
            WriteDirectory(Drivers);
		}

        /// <summary>
        /// Create a directory
        /// </summary>
        /// <param name="dir">New DIR.</param>
		public static void WriteDirectory(string dir) {
			if(!Directory.Exists(dir)) {
				Console.WriteLine ("[FS] Creating directory '{0}'", dir);
				Directory.CreateDirectory (dir);
			} else {
				Console.WriteLine ("[FS] That directory at {0} exists.", dir);
			}
		}

	}
}